2016-10-07 4 views
0

Hier ist mein Code: http://pastebin.com/RbFYCydfWie zählt man die Anzahl der Wörter in jeder Zeile einer Textdatei in C++?

Sie haben ein Problem mit der Ausgabe wie diese versuchen, es zu erhalten, zu suchen:

, wo der Gehweg Ends von Shel Silverstein 7 Es ist ein Ort, wo der Bürgersteig 8 endet und bevor die Straße beginnt, 5 Und dort wird das Gras weich und weiß, 8 Und dort brennt die Sonne karmesinrot, 7 Und dort ruht der Mondvogel von seiner Flucht 8 Um im Pfefferminzwind abzukühlen. 6 Lass uns diesen Ort verlassen, wo der Rauch schwarz weht. 10 Und die dunkle Straße windet und biegt sich. 7 Vorbei an den Gruben, wo die Asphaltblüten wachsen. 8 Wir gehen mit einem gemessenen und langsamen Gang. 11 Und sieh, wohin die Kreide-weißen Pfeile gehen. 7 Zu dem Ort, wo der Gehweg endet. 7 Ja, wir gehen mit einem Spaziergang, der gemessen und langsam ist, 11 Und wir gehen dahin, wo die Kreide-weißen Pfeile gehen, 8 Für die Kinder markieren sie, und die Kinder, sie wissen 10 Der Platz, wo der Bürgersteig endet . 6 Die Gesamtzahl der Worte ist 134

Antwort

1

ein besserer Weg gibt es mit peek als Messing:

Lesen Sie zuerst eine ganze Zeile mit getline. Geben Sie diese Zeile in eine istringstream ein.
Zählen Sie die Wörter in diesem Stream.
Wiederholen.

Details der Umsetzung als Übung verlassen.

0

Ich gebe Ihnen einen kniffligen Weg, es muss sehr gut funktionieren.

string s = "this is simple test"; //assume that this is the line to be calculated 
int i=0,ans=0; 
while (s.find(' ',i+1)!=-1){ 
    i = s.find(' ',i+1); 
    ans++; 
} 
cout<<++ans<<" "; 
+0

So arbeitet der zweite für eine Zeile in der Textdatei. Wie mache ich das für jede nachfolgende Zeile? Außerdem soll die Funktion .peek() verwendet werden. – greenee

Verwandte Themen