ISO C 比較エラー: ポインターと整数
Bjarne Stroustrup の C 書籍の例に取り組んでいるときに、一部のユーザーがコンパイルエラーに遭遇しました。 ISO C がポインタと整数の比較を禁止していることを示す時間エラー。この問題は、accept() 関数での char 変数と文字列定数を含む比較から発生します。
原因:
ISO C では直接比較が禁止されているためにエラーが発生します。文字ポインタ (char* など) と整数 (二重引用符で囲まれた文字の数値、例: "y") の組み合わせ。
解決策:
このエラーを解決するには、主に 2 つの方法があります:
推奨されるアプローチ: 文字列変数を使用する:
<code class="cpp">#include <iostream> #include <string> using namespace std; bool accept() { cout << "Do you want to proceed (y or n)?\n"; string answer; cin >> answer; if (answer == "y") return true; return false; }</code>
代替アプローチ: 一重引用符の使用:
<code class="cpp">#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; }</code>
以上がISO C ではポインターと整数の比較が禁止されているのはなぜですか? コード内のこのエラーを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。