私はファイルを読んで、行数を数えると同時に、その中の単語を数えなければならない割り当てに取り組んでいます。 whileループ内でgetlineとstrtokの組み合わせを試しましたが、うまくいきませんでした。テキストファイルを単語に分割する方法は?
ファイル:example.txt(読み込むファイル)。
こんにちは、何か楽しい驚き。
ようこそ。
ここで楽しい滞在ができますか?
(3行、いくつかの単語)。
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;
}
あなたは "動作しませんでした" 以上のことを言う必要があります。何が起こったのか、あるいはあなたのプログラムが期待したものとは異なることを特定した事を教えてください。そして、特定の質問をしてください。あなたの宿題をデバッグしたり、書き直したりすることはありません。 – Blorgbeard
次の例のいくつかはどうですか:http://www.codeproject.com/KB/recipes/Tokenizer.aspx非常に効率的でやや優雅です。 String Toolkit Libraryは、C++で複雑な文字列処理を簡単かつ簡単に行います。 –