Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[std::string] Usuwanie znacznika końca linii

Ostatnio zmodyfikowano 2012-05-29 17:36
Autor Wiadomość
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:
C/C++
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 @)?
P-57415
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)...
P-57452
« 1 »
  Strona 1 z 1