我有一个这样的文本文件:
Sting Another string 0 12 0 5 3 8
Sting Another string 8 13 2 0 6 11
我想知道有多少号码。我认为我最好的选择是使用while类型循环,条件结束计数然后另一行开始,但我不知道如何在一行结束时停止阅读。
提前感谢您的帮助;)
答案 0 :(得分:11)
将input
信息流拆分为行
std::string line;
while (std::getline(input, line))
{
// process each line here
}
要将一行拆分为单词,请使用stringstream:
std::istringstream linestream(line); // #include <sstream>
std::string word;
while (linestream >> word)
{
// process word
}
您可以为每个单词重复此操作以确定它是否包含数字。由于您没有指定数字是整数还是非整数,我假设int
:
std::istringstream wordstream(word);
int number;
if (wordstream >> number)
{
// process the number (count, store or whatever)
}
免责声明:这种做法并不完美。它会检测像123abc
这样的单词开头的“数字”,它还会允许输入格式string 123 string
。这种方法效率也不高。
答案 1 :(得分:4)
为什么不使用getline()
?
答案 2 :(得分:1)
行尾由'\ n'字符表示。 在遇到'\ n'
时,在while循环中放入一个条件