1. ホーム
  2. スクリプト・コラム
  3. その他

[解決済み】c++のコンパイルエラーです。ISO C++はポインタと整数の比較を禁止しています。

2022-01-10 08:36:59

質問

コードは次のとおりです。

#include <iostream>
#include <string>
using namespace std;
bool accept()
{
    cout << "Do you want to proceed (y or n)?\n";
    char answer;
    cin >> answer;
    if (answer == "y") return true;
    return false;
}

Bjarne StroustrupのC++の本、第3版のコードです。割と単純な関数を実装しつつ。

コンパイル時に if という行があります。

error: ISO C++ forbids comparison between pointer and integer

解決方法は?

この問題を解決するには、2つの方法があります。好ましいのは、使用する方法です。

string answer;

(代わりに char ). 他に考えられる修正方法としては

if (answer == 'y') ...

(二重引用符ではなく一重引用符で囲んでいることに注意してください。 char 定数)。