私はc++を初めて使用し、ファイルからコードを読み取り、その各部分を識別子、ブラケット、キーワードなどとして分類するプログラムを作成しています。
私はifelseステートメントを使用してこれを行っていますが、角かっことセミコロンを除いて正常に機能します。
たとえばif(a== "=" ) cout << "a is the equal operator"
、機能しますが、if(a== ";" ) cout << "a is a semicolon"
機能しません。比較方法も試してみましたが、うまくいきませんでした。
なぜそれが起こっているのか誰か教えてもらえますか?
ありがとう
void checkString(string a)
if(a=="("){
cout << "RPAR: " << a + "\n";
}
else if(a==")"){
cout << "LPAR: " << a + "\n";
}
else if(a.compare("{") == 0){
cout << "LBRAC: " << a + "\n";
}
else if(a=="}"){
cout << "RBRAC: " << a + "\n";
}
else{
cout << "IDENTIFIER: " << a + "\n";
}
}
int main (){
std::vector<string> STRINGS;
string STRING;
ifstream infile;
infile.open("m.c");
while(getline(infile,STRING,' ')){
STRINGS.push_back(STRING);
}
infile.close();
for(int i=0; i<STRINGS.size(); i++){
checkString(STRINGS[i]);
}
return 0;
}
aが角かっこまたはセミコロンの場合、プログラムはIDENTIFIER:{を出力します。