Wczytywanie z pliku
Ostatnio zmodyfikowano 2016-01-25 14:05
locf Temat założony przez niniejszego użytkownika |
Wczytywanie z pliku » 2016-01-25 10:13:42 Mam wczytać kolejne wiersze z pliku "jakis.txt" oraz wydrukować pierwszy i ostatni znak w każdym wierszu. Czy to powinno mniej więcej wyglądać jak poniżej? #include <iostream> #include <fstream>
using namespace std;
int main() { ifstream inFile; inFile.open( "jakistam.txt" ); string napis; int dlugosc = 0; while( inFile >> napis ) { dlugosc = napis.size(); for( int i = 0; i < dlugosc - 1; i++ ) cout << napis[ i ] << " i " << napis[ dlugosc - 1 ]; } inFile.close(); return 0; }
|
|
carlosmay |
» 2016-01-25 11:25:16 inFile >> napis nie wczytuje wiersza tylko jeden wyraz. Do tego służy std::getline(). Zmienna dlugosc jest zbędna. Można używać bezpośrednio *.size(), np. std::cout << napis[ 0 ] << " " << napis[ napis.size() - 1 ]; Petla for() w jakim celu? |
|
locf Temat założony przez niniejszego użytkownika |
» 2016-01-25 13:14:59 Dzięki. Czy teraz jest poprawnie? #include <iostream> #include <fstream>
using namespace std;
int main() { ifstream inFile; inFile.open( "jakistam.txt" ); string napis; while( inFile.good() ) { getline( inFile, napis ); cout << napis[ 0 ] << " i " << napis[ napis.size() - 1 ]; } inFile.close(); return 0; }
|
|
carlosmay |
» 2016-01-25 13:45:22 Czy teraz jest poprawnie? |
Raczej nie. while( inFile.good() ) { getline( inFile, napis ); cout << napis[ 0 ] << " i " << napis[ napis.size() - 1 ]; } |
Lepszym rozwiązaniem będzie while( getline( inFile, napis ) ) { cout << napis[ 0 ] << " i " << napis[ napis.size() - 1 ] << endl; } |
|
locf Temat założony przez niniejszego użytkownika |
» 2016-01-25 14:05:15 Dzięki za pomoc ! |
|
« 1 » |