编写一个程序,提示用户输入文本文件的名称,然后输出文件中的单词数。您可以将“单词”视为由空格包围的任何文本(例如,空格,回车符,换行符等)或文本的开头或结尾。
在编译程序的过程中,当我输入file时,我把一些单词放在里面,我一直得到输出的“0字”。谁能告诉我它有什么问题?
a-z
答案 0 :(得分:1)
如果您的文件位于桌面上,则需要将整个路径从c:
开始,如下所示:in_stream.open("C:\\Users\\...\\Desktop\\" + FileName.c_str())
。或者将您的文件移动到 .exe 所在的解决方案文件夹中。
修改强>
这就是你展示它的方式:
if(numWords<=1)
{
cout << "There is " << numWords << " word in the file \"" << filename << "\"." << endl;
}
else{
cout << "There are " << numWords << " words in the file \"" << filename << "\"." << endl;
}
return 0;
}
答案 1 :(得分:0)
代码对我有用!!
它输出的内容比它需要的多得多,但代码的核心是正确的(尽管写得不是很好)。
> cat data.txt
1 2 3
> g++ -std=c++14 -o xx xx.cpp
> ./xx
Enter filename:
data.txt
1 2 3 There are 3 words in the file data.txt.
问题看起来是您输入的文件名与文件名不匹配。这包括目录。当应用程序运行时,它有一个工作目录。如果指定相对文件名,则文件名相对于此目录(当前工作目录)。
解。