C++ 比较两个整数、错误或奇怪的结束
C++ comparing two ints, error or wierd end
我在 CODE:BLOCKS 中使用 C++,并且我制作了一个带有登录的小游戏,所以当我想比较一个来自 scanf 的变量 (int) 和我制作的一个变量时,那是行不通的。所以在程序中我用一个名字和一个密码登录,这有效,比我得到一个练习:65+34 如果我输入任何数字,它会崩溃,如果我输入一个字母,它会说 "A valasz rossz" 这意味着我的回答不正确,对匈牙利语程序感到抱歉...翻译:
- A valasz helyes - 答案正确
- A valasz rossz - 答案错误
- 杰特克! Valaszolj a helyesen- 游戏!正确回答
- 请注意! - 登录
- Felhasznalonev - 昵称
- Jelszo - 密码
- 马上注册! 1 Regisztracio 2 Kilepes - 你还没有
注册了吗! 1注册 2退出
所以我认为问题在于标准 if(ans==eo)
代码:http://pastebin.com/E0AbRx8y 求助 104。LINE
感谢您的帮助,这对我来说意义重大! <3
在第 103 行中,您需要将要存储值的变量的地址传递给 scanf,而不是:
scanf("%d",ans);
你应该这样做:
scanf("%d", &ans);
您可能需要检查对 scanf 的所有调用,并且:
- 确保将指针传递给输出变量
- 检查 return 值以验证您是否已成功读取用户的输入(例如,检测您是否需要一个数字并且用户输入了一个单词)
- 使用 C 字符串(char 数组,与 printf 和 scanf 函数一起使用)而不是 C++ 字符串(std::string,与 >> 和 << 运算符一起使用)
希望对您有所帮助。
问题在这里:
scanf("%d",ans);
'scanf()'
存储值,所以它需要一个地方来存储它们。
这是通过提供地址(在指针中)来完成的
存储值的位置。
所以写:
scanf("%d",&ans);
它将解决您的问题。
我在 CODE:BLOCKS 中使用 C++,并且我制作了一个带有登录的小游戏,所以当我想比较一个来自 scanf 的变量 (int) 和我制作的一个变量时,那是行不通的。所以在程序中我用一个名字和一个密码登录,这有效,比我得到一个练习:65+34 如果我输入任何数字,它会崩溃,如果我输入一个字母,它会说 "A valasz rossz" 这意味着我的回答不正确,对匈牙利语程序感到抱歉...翻译:
- A valasz helyes - 答案正确
- A valasz rossz - 答案错误
- 杰特克! Valaszolj a helyesen- 游戏!正确回答
- 请注意! - 登录
- Felhasznalonev - 昵称
- Jelszo - 密码
- 马上注册! 1 Regisztracio 2 Kilepes - 你还没有 注册了吗! 1注册 2退出 所以我认为问题在于标准 if(ans==eo) 代码:http://pastebin.com/E0AbRx8y 求助 104。LINE 感谢您的帮助,这对我来说意义重大! <3
在第 103 行中,您需要将要存储值的变量的地址传递给 scanf,而不是:
scanf("%d",ans);
你应该这样做:
scanf("%d", &ans);
您可能需要检查对 scanf 的所有调用,并且:
- 确保将指针传递给输出变量
- 检查 return 值以验证您是否已成功读取用户的输入(例如,检测您是否需要一个数字并且用户输入了一个单词)
- 使用 C 字符串(char 数组,与 printf 和 scanf 函数一起使用)而不是 C++ 字符串(std::string,与 >> 和 << 运算符一起使用)
希望对您有所帮助。
问题在这里:
scanf("%d",ans);
'scanf()'
存储值,所以它需要一个地方来存储它们。
这是通过提供地址(在指针中)来完成的
存储值的位置。
所以写:
scanf("%d",&ans);
它将解决您的问题。