因此,例如,我有一個帶有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