Mor*_*ock 27 c++ compiler-errors
我正在尝试Bjarne Stroustrup的C++书籍第三版.在实现一个相当简单的函数时,我得到以下编译时错误:
error: ISO C++ forbids comparison between pointer and integer
Run Code Online (Sandbox Code Playgroud)
可能是什么导致了这个?这是代码.错误在于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;
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
Chr*_*ung 38
你有两种方法来解决这个问题.首选方式是使用:
string answer;
Run Code Online (Sandbox Code Playgroud)
(而不是char
).另一种可能的解决方法是:
if (answer == 'y') ...
Run Code Online (Sandbox Code Playgroud)
(注意单引号而不是double,表示char
常量).
字符串文字用引号分隔,类型为char*而不是char.
例: "hello"
因此,当您将char与char*进行比较时,您将获得相同的编译错误.
char c = 'c';
char *p = "hello";
if(c==p)//compiling error
{
}
Run Code Online (Sandbox Code Playgroud)
要修复使用由单引号分隔的char文字.
例: 'c'
您需要将这些双引号更改为单个.即.if (answer == 'y')
回报true
;
以下是C++中字符串文字的一些信息:http: //msdn.microsoft.com/en-us/library/69ze775t%28VS.80%29.aspx
归档时间: |
|
查看次数: |
113671 次 |
最近记录: |