一个计算单词的c ++程序

时间:2016-07-17 20:04:52

标签: c++

  

编写一个程序,提示用户输入文本文件的名称,然后输出文件中的单词数。您可以将“单词”视为由空格包围的任何文本(例如,空格,回车符,换行符等)或文本的开头或结尾。

在编译程序的过程中,当我输入file时,我把一些单词放在里面,我一直得到输出的“0字”。谁能告诉我它有什么问题?

a-z

2 个答案:

答案 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.

可能的问题

问题看起来是您输入的文件名与文件名不匹配。这包括目录。当应用程序运行时,它有一个工作目录。如果指定相对文件名,则文件名相对于此目录(当前工作目录)。

请参阅:Current working directory

解。

  1. 从当前工作目录中计算出文件的正确相对路径。
  2. 将您的数据文件移至当前工作目录。
  3. 指定绝对路径