的不输出下一个实例我有以下代码While循环并串
#include <iostream>
#include <fstream>
#include <string>
int main(){
std::string file = "words.txt";
std::string word;
std::ifstream inFile;
std::string delimiter = ",";
inFile.open(file);
if (!inFile){
std::cerr << "File not opened." << std::endl;
}
while (getline(inFile, word)){
std::cout << word.substr(0, word.find(delimiter)) << " ";
word.erase(0, word.find(delimiter) + delimiter.length());
}
inFile.close();
std::cin.get();
}
在这个循环的一个问题:
while (getline(inFile, word)){
std::cout << word.substr(0, word.find(delimiter)) << " ";
word.erase(0, word.find(delimiter) + delimiter.length());
}
我收到的唯一输出的第一子在输出中形成"word1"
。
我已经在擦除函数后面的行中输入了一个std::cout << word.substr(0, word.find(delimiter))
,以确定该单词是否仍然有字符,并且确实如此。 word
是格式为"word1","word2","word3",...,"lastword"
的很长的字符串,我的分隔符是","
。
你遍历文件中的行,没有结束的一行字。做'getline(inFile,word,',')',而不需要做任何'substr'业务。如果你需要迭代这些行中的行和单词,你将需要嵌套循环。 –