无法阅读文本文件中的每个单词

时间:2018-05-03 15:27:03

标签: c++ xcode

我有一个包含内容的文本文件:

  

人工神经网络(ANNs)或连接系统   计算系统模糊地受到生物神经网络的启发   构成动物的大脑。[1]这种系统“学习”(即   通过考虑示例,逐步提高任务的性能,   通常没有特定于任务的编程。例如,在图像中   识别,他们可能会学会识别包含猫的图像   分析已手动标记为“猫”或“猫”的示例图像   “没有猫”并使用结果来识别其他图像中的猫。他们   在没有关于猫的任何先验知识的情况下这样做,例如,他们   有毛皮,尾巴,胡须和猫似的脸。相反,他们进化了   他们自己的一套相关特征来自学习资料   他们处理。

我正在使用此代码来阅读内容。

ifstream file("/Users/sourav/Desktop/stl/stl/stl/testdata.txt");
while (! file.eof()) {
    string word;
    file >> word ;
    cout << word << "\n";
}

这是输出的前几行:

Artificial

neural

(ANNs)

are

vaguely

如果您发现内容未正确读取。我没有看到or connectionist systems are computing systems

我在阅读时缺少文本文件中的少量字符串值。

注意:我正在使用Xcode。

ifstream file("/Users/sourav/Desktop/stl/stl/stl/dictionary.txt");
string line;

if (file.is_open())  // same as: if (myfile.good())
{

    while(getline(file,line,'\r')){
         transform(line.begin(), line.end(), line.begin(), ::tolower);
        Dictionary.insert(line);


    }
    cout<<Dictionary.size()<<" words read from dictionary\n";
    file.close();

为什么当我将它转换为小写

时,dictionary.size()的值会发生变化

2 个答案:

答案 0 :(得分:1)

尝试使用以下内容:

ifstream file("/Users/sourav/Desktop/stl/stl/stl/testdata.txt");

string word;
while(file >> word) //While there is a word to get... get it and put it in word
{
    cout << word <<"\n";
}

可以在已接受的问题read word by word from file in C++

中找到更多解释

虽然这与你的逻辑之间的逻辑没有多大区别。

答案 1 :(得分:1)

虽然这可能无法解释为什么它不起作用,但您的代码可能如下所示:

ifstream file("testdata.txt");
do {
  string word;
  file >> word ;
  if (!file.good()) break;
  cout << word << "\n";
} while (!file.eof());

如果您从未尝试过先阅读某些内容,那么测试eof条件是不正确的。

此代码(以及在逻辑上不正确的代码)完美运行。所以发生了其他事情(与xcode无关)。