2015-02-06 54 views
0

所以我有一个包含格式化信息的文本文件,如下所示。使用Getline从文件中读取信息()C++

100 
4,2 
3 
5,1 

我试图使用getline()函数中的每一行阅读,然后再确定该行有一个或两个数字。我的问题是,如何检查该行是否有两个数字或一个?这将涉及检查逗号,但我不知道如何这样做。

感谢

+0

可能重复[如何搜索字符串中的字符?](http://stackoverflow.com/questions/26115551/how-can-i-search-for-a-character-in -a-string) – Barmar 2015-02-06 02:25:04

+0

可能使用'std :: getline'来读取一行,然后'find(“,”)'来查看它是否包含逗号。 – 2015-02-06 02:25:13

+0

你的问题似乎与'getline()'没有任何关系。你只是想知道如何在字符串中搜索一个逗号,事实上你得到的字符串与'getline()'几乎没有关系。 – Barmar 2015-02-06 02:25:51

回答

0

使用getlinefind,你可以很容易地计算数量

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; 
} 
相关问题