我正在尝试Bjarne Stroustrup的C++书第三版中的一个例子。在实现一个相当简单的函数时,我得到了以下编译时错误:
error: ISO C++ forbids comparison between pointer and integer
这可能是什么原因造成的?下面是代码。错误在if
行中:
#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;
}
谢谢!
发布于 2010-02-15 10:10:21
您有两种方法来解决这个问题。首选方法是使用:
string answer;
(而非char
)。另一种可能的修复方法是:
if (answer == 'y') ...
(请注意单引号而不是双引号,表示char
常量)。
发布于 2010-02-15 10:10:17
字符串文字由引号分隔,类型为char* not char。
示例:"hello"
因此,当您将char与char*进行比较时,您将得到相同编译错误。
char c = 'c';
char *p = "hello";
if(c==p)//compiling error
{
}
要修复此问题,请使用由单引号分隔的char文本。
示例:'c'
发布于 2010-02-15 10:09:25
你需要把那些双引号改成单引号。即。if (answer == 'y')
返回true
;
以下是关于C++中的字符串文字的一些信息:http://msdn.microsoft.com/en-us/library/69ze775t%28VS.80%29.aspx
https://stackoverflow.com/questions/2263681
复制相似问题