0
所以我有一个包含格式化信息的文本文件,如下所示。使用Getline从文件中读取信息()C++
100
4,2
3
5,1
我试图使用getline()
函数中的每一行阅读,然后再确定该行有一个或两个数字。我的问题是,如何检查该行是否有两个数字或一个?这将涉及检查逗号,但我不知道如何这样做。
感谢
所以我有一个包含格式化信息的文本文件,如下所示。使用Getline从文件中读取信息()C++
100
4,2
3
5,1
我试图使用getline()
函数中的每一行阅读,然后再确定该行有一个或两个数字。我的问题是,如何检查该行是否有两个数字或一个?这将涉及检查逗号,但我不知道如何这样做。
感谢
使用getline
和find
,你可以很容易地计算数量
getline
会遍历你的文件的每一行
find
将寻找昏迷的数量在当前行,如果你加1,这应该会给你计数
这假设你的文件格式良好
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string line;
ifstream myfile ("example.txt");
if (myfile.is_open())
{
int i = 1;
while (getline (myfile,line))
{
size_t numberCount = std::count(line.begin(), line.end(), ',') + 1;
cout << "Line "<< i << " has " << numberCount << " numbers"<<endl;
i++;
}
myfile.close();
}
else cout << "Unable to open file";
return 0;
}
可能重复[如何搜索字符串中的字符?](http://stackoverflow.com/questions/26115551/how-can-i-search-for-a-character-in -a-string) – Barmar 2015-02-06 02:25:04
可能使用'std :: getline'来读取一行,然后'find(“,”)'来查看它是否包含逗号。 – 2015-02-06 02:25:13
你的问题似乎与'getline()'没有任何关系。你只是想知道如何在字符串中搜索一个逗号,事实上你得到的字符串与'getline()'几乎没有关系。 – Barmar 2015-02-06 02:25:51