因此,例如,我有一个带有propper C++代码的.txt文件。我想统计已经使用了多少个比较运算符(例如!=,< =)。我想通过阅读字符char(请参阅下面的代码)如何做到这一点,但我无法弄清楚如何在逐行阅读时做到这一点。也许有人可以给我一个提示?逐行读取文本文件并计数比较运算符
#include <fstream>
#include <iostream>
using namespace std;
int main(){
fstream fin ("file.txt", ios::in);
bool flag=false;
char a;
int count=0;
fin.get(a);
while(fin)
{
if(!flag)
{
if(a=='=' || a=='!' || a=='<' || a=='>')
{
flag=true;
}
}
else
{
if(a=='=')
{
count++;
flag=false;
}
else flag=false;
}
fin.get(a);
}
fin.close();
cout<<"The number of comparison operators in this file: "<<count<<endl;
return 0;
}
所以例如我有这样txt文件: 'INT主() { INT一个; cin >> a;如果(a == 10) cout <<“宾果!”; if(a <=9 && a> = 4) cout <<“很好,但仍需要一些练习! if(a <=3 && a > = 1) cout <<“下次更好运!”; 如果(a <=0 || a> 10) cout <<“无效输入”; return 0; }' 输出结果是:6(仅计数<=,==和<=) – Jan4ezz
是的,但它也从文件('cin.get')中读取char by char。我在想,如何逐行阅读(使用'getline(fin,s)',其中s是一个被读取的字符串)。所以我会从文本中读取一行,但我不知道如何比较该行中的每个单词来计算这些操作符? – Jan4ezz
由于某种原因,它不能编译。首先它说main()必须返回int值(所以它应该是'int main()'),但是当我改变它并尝试运行这个程序时它会崩溃。 ''program.exe停止工作“但我不明白为什么 – Jan4ezz