Sto lavorando ad un incarico in cui dovrei leggere un file e contare il numero di linee e allo stesso tempo contare le parole in esso. Ho provato una combinazione di getline e strtok all'interno di un ciclo while, che non ha funzionato.Come dividere un file di testo in parole?
file: example.txt (il file da leggere).
Ciao, ciao che piacevole sorpresa.
Benvenuti in questo posto.
Possa trascorrere un piacevole soggiorno qui.
(3 righe e alcune parole).
Readfile.cpp
#include <iostream>
#include <fstream>
#include<string>
using namespace std;
int main()
{
ifstream in("example.txt");
int count = 0;
if(!in)
{
cout << "Cannot open input file.\n";
return 1;
}
char str[255];
string tok;
char * t2;
while(in)
{
in.getline(str, 255);
in>>tok;
char *dup = strdup(tok.c_str());
do
{
t2 = strtok(dup," ");
}while(t2 != NULL);
cout<<t2<<endl;
free (dup);
count++;
}
in.close();
cout<<count;
return 0;
}
hai bisogno di dire altro che "non ha funzionato". Dicci quale errore ottieni, o la cosa SPECIFICA che il tuo programma fa in modo diverso da come ti aspetti, quindi fai una domanda specifica. Non eseguiremo il debug o riscriveremo i compiti per te. – Blorgbeard
Ecco alcuni esempi dei seguenti: http://www.codeproject.com/KB/recipes/Tokenizer.aspx Sono molto efficienti e alquanto eleganti. La libreria String Toolkit rende l'elaborazione di stringhe complessa in C++ semplice e facile. –