C++ で strcmp を使用して文字配列を比較していますが、strcmp が発生するたびに次のエラーが発生します: エラー: 'int' から 'const char*' への変換が無効です: エラー: 'int strcmp の引数 2 を初期化しています(const char*, const char*)'
string、string.h、および stdio.h を含めました。これが私のコードです。返信してくれたすべての人に感謝します。
また、一連の if ステートメント以外にバッファをチェックするより良い方法はありますか?
int main(int argc, char* argv[])
{
unsigned count = 0;
bool terminate = false;
char buffer[128];
do {
// Print prompt and get input
count++;
print_prompt(count);
cin.getline(buffer, 128);
// check if input was greater than 128, then check for built-in commands
// and finally execute command
if (cin.fail()) {
cerr << "Error: Commands must be no more than 128 characters!" << endl;
}
else if ( strcmp(buffer, 'hist') == 0 ) {
print_Hist();
}
else if ( strcmp(buffer, 'curPid') == 0 ) {
// get curPid
}
else if ( strncmp(buffer, 'cd ', 3) == 0 ) {
// change directory
}
else if ( strcmp(buffer, 'quit') == 0 ) {
terminate = true;
}
else {
//run external command
}
} while(!terminate);
return 0;
}