szp4n3r Temat założony przez niniejszego użytkownika |
Wczytywanie wyrazów do tablicy » 2017-01-17 14:41:24 Cześć Potrzebuje funkcji która wczyta mi kolejne wyrazy do tablicy w ten sposób. Przykład: czwartek 12 zrobic obiad tab[0]=czwartek tab[1]=12 tab[2]=zrobic obiad
Ogólnie będę miał kilka takich "zdań" i muszę je posortować według daty i godziny. Myślałem wczytać to do tablicy 2wymiarowej i odpowiednio sortować. Chyba, że ma ktoś lepsze rozwiązanie? |
|
czaffik |
» 2017-01-17 17:19:06 Stworzyć strukturę lub obiekt, powiedzmy: struct Dzialanie { string dzien; int godzina; string doZrobienia; };
i potem wpychać to do vectora albo tablicy jak ci wygodniej. |
|
szp4n3r Temat założony przez niniejszego użytkownika |
» 2017-01-17 18:31:27 Ok, a co jeżeli chciałbym wczytać te dane z pliku? Która funkcja wczytuje ciąg znaków aż znajdzie biały znak ? |
|
czaffik |
» 2017-01-17 19:27:33 Jeśli się nie mylę to zazwyczaj operator >> czyta do napotkania białego znaku. |
|
karambaHZP |
» 2017-01-17 19:32:22 std::getline() też czyta do terminatora ustawionego w trzecim argumencie. |
|
szp4n3r Temat założony przez niniejszego użytkownika |
» 2017-01-18 20:55:00 Pomoże ktoś ? Wywala błąd przy kompilacji - coś nie tak z wczytywaniem tekstu do tablicy. #include <fstream> #include <cstdio> #include <iostream> #include <cstdlib> #include <conio.h>
using namespace std;
struct wiersz { int dzien; int godzina; char nazwa; };
void Sortowanie( char ** tab, int left, int right ) { int i = left; int j = right; int first; first =( left + right ) / 2; char x = tab[ first ][ 0 ]; do { while( tab[ i ][ 0 ] < x ) i++; while( tab[ j ][ 0 ] > x ) j--; if( i <= j ) { swap( tab[ i ][ 0 ], tab[ j ][ 0 ] ); i++; j--; } } while( i <= j ); if( left < j ) Sortowanie( tab, left, j ); if( right > i ) Sortowanie( tab, i, right ); }
int main() { int ilosc = 10; wiersz tab[ ilosc ]; std::fstream plik; plik.open( "programy.txt", std::ios::in ); if( plik.good() == true ) { cout << "Uzyskano dostep do pliku!" << endl; } else cout << "Dostep do pliku zostal zabroniony!" << endl; for( int i = 0; i < ilosc; i++ ) { getline( plik, tab[ i ].dzien, '\t' ); getline( plik, tab[ i ].godzina, '\t' ); getline( plik, tab[ i ].nazwa ); } for( int i = 0; i < ilosc; i++ ) { cout << tab[ i ].dzien << endl; }; return 0; }
|
|
karambaHZP |
» 2017-01-18 22:43:03 Pomoże ktoś ? Wywala błąd przy kompilacji |
A gdzie treść błędu? Kompilator po to je wyświetla, aby łatwiej było namierzyć miejsce błędu (zazwyczaj). Przy okazji pokaż zawartość pliku. Wczytywanie z pliku wykonuje się niezależnie od powodzenia otwierania pliku. |
|
szp4n3r Temat założony przez niniejszego użytkownika |
» 2017-01-19 18:06:22 [ Error ] no matching function for call to 'getline(std::fstream&, int&, char)' A tutaj pierwsze dwa wiersze wczytywanego pliku: 20.01 6:00 Pytanie na sniadanie 21.01 7:00 Pytanie na sniadanie |
|
« 1 » 2 |