[std::string] Usuwanie znacznika końca linii
Ostatnio zmodyfikowano 2012-05-29 17:36
pawajoro Temat założony przez niniejszego użytkownika |
[std::string] Usuwanie znacznika końca linii » 2012-05-28 20:31:36 Więc jest kod: int main() { fstream plik1; plik1.open( "C:\\in.txt", ios::in ); fstream plik2; plik2.open( "C:\\out.txt", ios::out ); int c = 0; do { string tekst = "answers["; ostringstream ss; if( c > 103 ) ss << c - 1; else ss << c; tekst.append( ss.str() ); tekst.append( "]=~" ); string gl; getline( plik1, gl ); tekst.append( gl ); tekst.append( "@" ); if( c != 103 ) plik2 << tekst << endl; c++; } while( c < 255 ); plik1.close(); plik2.close(); } Funkcja getline pobiera całą linijkę tekstu i z moich doświadczeń wynika, że znacznik końca linii również :) . Ale co ciekawe Notatnik wyświetla tekst bez końca linii z dokumentu wejściowego ale plik2 << tekst << endl obsługuje normalnie. Za to np. w MS Visual C++ @ przerzuca się do nowej linijki. Co zrobić, by coś takiego nie występowało (przerzucanie @)? |
|
Admixior |
» 2012-05-29 17:36:52 Uno: getline() nie pobiera końca linii. W dokumentacji pisze że wyrzuca( ale nie zapisuje go do stringu). Duo: Testowałem ten program na przykładowych danych otwierałem txt przez notatnik i przez Visual i nigdzie nie było znaku końca linii. A na debuggerze nic nie pokazuje o końcu linii w stringu(ani \r ani \n)... |
|
« 1 » |