C ++比较两个整数,错误或奇怪的结尾

时间:2016-06-23 09:08:17

标签: c++ compare codeblocks

我在CODE中使用C ++:BLOCKS和ive用登录做了一个小游戏,所以当我想比较一个来自scanf的变量(int)和我做的变量时,那就不行了。所以在程序中我用一个名字和一个pw登录,这比我得到的练习如下:65 + 34如果我键入任何数字,它会崩溃,如果我输入一个字母,它会说“A valasz rossz“这意味着我的回答是不正确的,对匈牙利的计划感到抱歉......翻译:

  • valasz helyes - 答案是对的
  • valasz rossz - 答案错了
  • Jatek! Valaszolj a helyesen-游戏!正确回答
  • Bejelentkezes! - 登录
  • Felhasznalonev - 昵称
  • Jelszo - pawssword
  • 关于meg nem regisztralt! 1 Regisztracio 2 Kilepes - 你没有 注册了! 1注册2退出 所以我认为问题在于(ans == eo)的标准 代码:http://pastebin.com/E0AbRx8y帮助104. LINE 谢谢你的帮助,这对我来说很重要! < 3

2 个答案:

答案 0 :(得分:1)

在第103行中,您需要将scanf传递给要存储值的变量的ADDRESS,而不是:

scanf("%d",ans);

你应该这样做:

scanf("%d", &ans);

您可能需要查看对scanf的所有调用,并且:

  1. 确保将指针传递给输出变量
  2. 检查返回值,以验证您是否已成功读取用户的输入(例如,检测您是否预期某个号码并且用户输入了一个字词)
  3. 使用C字符串(char数组,使用printf和scanf函数)而不是C ++字符串(std :: string,它与>>和<<运算符一起使用)
  4. 希望它有所帮助。

答案 1 :(得分:0)

问题在于:

scanf("%d",ans);

'scanf()'存储值,因此需要存储它们的位置。 这是通过提供地址(指针)来完成的 存储值的位置。

所以写:

scanf("%d",&ans);

它将解决您的问题。