错误讯息:
这是什么意思?
我该如何解决?
错误C2040:'==':'int'与'const char [2]'的间接级别不同
代码:
#include <iostream>
#include <cmath>
using namespace std;
int round(double number);
//Assumes number >=0.
//Returns number rounded to the nearest integer.
int main()
{
double doubleValue;
char ans;
do
{
cout << "Enter a double value: ";
cin >> doubleValue;
cout << "Rounded that number is " <<round(doubleValue)<< endl;
cout << "Again? (y/n): ";
cin >> ans;
}
//Here is the line generating the problem, while(...);
while (ans == 'y' || ans == "Y");
cout << "End of testing.\n";
return 0;
}
//Uses cmath
int round(double number)
{
return static_cast<int>(floor(number + 0.5));
}
答案 0 :(得分:10)
您需要单引char
个文字。你为第一个而不是第二个正确地做了这个:
while (ans == 'y' || ans == "Y");
这应该是:
while (ans == 'y' || ans == 'Y');
双引号用于字符串(const char[]
)文字。
答案 1 :(得分:1)
此行上有双引号而不是单引号:
while (ans == 'y' || ans == "Y");
答案 2 :(得分:1)
大写Y包含在双引号中,创建const char [2]
(Y后跟null)。你可能会说:
while (ans == 'y' || ans == 'Y');
答案 3 :(得分:-2)
我不知道这有用与否,但可能如下:
while((ans =='y')||(ans =='Y'));