#include <iostream>
#include <time.h>
using namespace std;
int main()
{
cout << "想不想听故事?";
char input1;
if(input1 == "想")
{
cout << "OK...咳咳";
while(1)
{
cout << "从前有座山," << endl;
_sleep(1000);
cout << "山里有座庙," << endl;
_sleep(1000);
cout << "庙里有个小和尚," << endl;
_sleep(1000);
cout << "大和尚给小和尚讲故事:" << endl;
_sleep(1000);
}
}
else if(input1 == "不想")
{
cout << "好吧";
}
else
{
cout << "???";
}
return 0;
}
报错:
官方微信2133688724
开始编译
编译失败/storage/emulated/0/Code/Project/CPlusPlus/从前有座山/main.cpp: In function 'int main()': /storage/emulated/0/Code/Project/CPlusPlus/从前有座山/main.cpp:8:17: error: ISO C++ forbids comparison between pointer and integer [-fpermissive] if(input1 == "想") ^~~~~ compilation terminated due to -Wfatal-errors.
你定义了一个char类型的变量,但是并没有输入哦,得输入!
还有char是字符得用单引号!
还有就是我不知道你的编译器sleep报不报错,我的编译器是报错的,你先试试我的代码,不对我在帮你调试
详细改法见注释:
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
cout << "想不想听故事?";
char input1;
cin>> input1;//这里 你没有输入
if(input1 == '想') //这里 char是个字符得用单引号
{
cout << "OK...咳咳";
while(1)
{
cout << "从前有座山," << endl;
_sleep(1000);
cout << "山里有座庙," << endl;
_sleep(1000);
cout << "庙里有个小和尚," << endl;
_sleep(1000);
cout << "大和尚给小和尚讲故事:" << endl;
_sleep(1000);
}
}
else if(input1 == '不想') //这里 char是个字符得用单引号
{
cout << "好吧";
return 0;//这里 输入不想直接结束程序
}
else
{
cout << "???";
}
return 0;
}
input1 首先你要输入呀
另外 这个比较 也不对,input1 是 char类型, 后面 "想" 这是字符串,相当于字符数组
下面的 不想 也是,这是字符串,一个字符 无法用 == 比较,
你要么用 string类,要么字符数组比较就用 库函数 strcmp
你的判断条件那块,在c++中字符数组和字符串常量是不同的类型。
在你的第8行 if(input1 == "想")这块,你可以用单引号将字符常量'想'替换字符串常量"想",if(input1 == '想'),或者将字符串常量转换为字符数组。
同理,你的第23行else if(input1 == "不想")这里也需要改一下else if(input1 == '不想')
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
不知道你这个问题是否已经解决, 如果还没有解决的话:问题的原因是代码中存在一些语法错误和逻辑问题。
首先,变量input1
没有被初始化,所以它的值是未定义的。应该在使用之前给它赋值。
其次,input1
是一个字符变量,所以不能使用双引号括起来的字符串来进行比较。你需要使用单引号括起来的字符来进行比较。
此外,函数_sleep()
不是标准C++函数,所以不能在该程序中使用。你可以使用sleep()
函数(在<unistd.h>
中)来暂停程序的执行。
下面是修改后的代码:
#include <iostream>
#include <unistd.h>
using namespace std;
int main()
{
cout << "想不想听故事?";
char input1;
cin >> input1;
if(input1 == '想')
{
cout << "OK...咳咳" << endl;
while(1)
{
cout << "从前有座山," << endl;
sleep(1);
cout << "山里有座庙," << endl;
sleep(1);
cout << "庙里有个小和尚," << endl;
sleep(1);
cout << "大和尚给小和尚讲故事:" << endl;
sleep(1);
}
}
else if(input1 == '不')
{
cout << "好吧" << endl;
}
else
{
cout << "???" << endl;
}
return 0;
}
这样修改后的代码应该可以正常编译和运行了。