急!怎么用C++ 检测行数和空格

来源:百度知道 编辑:UC知道 时间:2024/06/17 22:32:27
最好从txt文档中读入数据 行要满足开头是空格 结尾是符号"_" 比如 空格3759689486_ 则算一行 如果不是这种格式则不算一行 最后输出满足这种条件的行有多少 很急 希望能帮下 谢谢

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

char buf[1000000];

int main()
{
ifstream fin("file.txt");
int count = 0, flag = 0;
while (!fin.eof()) {
char c = fin.get();
int is_space = isspace((unsigned int)c);
if (is_space && flag == 0) {
flag = 1;
}
else if (!is_space && c != '_' && flag == 1) {
flag = 2;
}
else if (is_space && flag == 2) {
flag = 1;
}
else if (c == '_' && flag == 2) {
flag = 0;
count++;
}

}
fin.close();
cout << count << endl;
}

本人愚见
1 读取第一个字符 判断是否是空格
2 读取下一个字符 判段是否是数据(数字、字符、符号?不包括空格和_)
3 继续读取下一个 直到下一个是空格或_
4 如果是空格 以此为基点,读下一个
5 如果是_ 结束一个数据读取

用正则表达式直接就可以得出结果