Suche nach dem Absatz bei einem String
-
hey leute,
ich hab folgendes problem:ich möchte feststellen, ob innerhalb einer gewissen zeichenanzahl bereits ein absatz vorgekommen ist oder nicht. dafür gehe ich den string einzeln durch un suche nach '\n'
doch leider bleibt der zähler bei 0...
hier das programm schnipsel:for ( int i = 0 ; i < laenge ; ++i ) { if ( zeile[ i ] == '\n' ) ++absatz ; }vielen dank schon mal für eure hilfe

-
Sehe keinen Fehler. Mehr Code. http://ideone.com/f6wFh
-
hm, ich hab im moment eigentlich nicht viel mehr code als das, aber hier ist das ganze:
int main ( int narg, char* argv[] ) { if ( narg != 3 ) { cout << "usage: " << argv[ 0 ] << "dateiName, breite" << endl << " Dateiname: Name der ASCII-Datei" << endl << " Breite : natürliche Zahl >= 2" << endl << "Liest die Datei dateiName und schreibt sie im" << endl << "Blocksatz mit der Zeilenbreite breite auf cout." ; } string zeile ; int n = atoi( argv[ 2 ] ) ; int absatz = 0 ; int space = 0 ; ifstream fin( argv[ 1 ] ) ; // Datei ¨offnen if ( fin ) // Datei bereit? { while ( getline( fin , zeile ) ) { int test = zeile.size() ; cout << test << endl ; for ( int i = 0 ; i < test+1 ; ++i ) { if ( i == 0 ) { absatz = 0 ; space = 0 ; } if ( zeile[ i ] == '\n' ) ++absatz ; if ( zeile[ i ] == ' ' ) ++space ; } cout << "Space: " << space << "\n" << "Absatz: " << absatz << endl ; }und als einzulesenden text habe ich:
Das Trennzeichen in "Erpro-
bung" muss verschwinden und
die beiden Absaetze muessen
optisch getrennt bleiben.Wenn Sie die Breite kleiner
als 18 einstellen, wird das
Wort Programmieraufgabe in
seiner Zeile getrennt.
*nochmals vielen dank.
-
Wenn du mit getline liest, dann wird an den '\n' getrennt und das '\n' jeweils abgeschnitten. Bevor du jetzt verzweifelst über eine Lösung nachdenkst: Die Anzahl der erfolgreichen getlines ist dann entsprechend die Anzahl der '\n' im Text (eventuell minus 1, je nachdem, ob die letzte Zeile auf '\n' endet oder nicht).
-
ohhh, ok, alles klar
vielen dank dafür