【问题标题】:For some reason after inputting cin text, the cout comes out blank. Any ideas?由于某种原因,输入 cin 文本后,cout 出现空白。有任何想法吗?
【发布时间】:2014-10-14 03:25:06
【问题描述】:

所以我正在尝试创建一个简单的文本角色扮演游戏。但是,这个问题让我望而却步。

#include <iostream>

using namespace std;

int main()
{
    int input;
    long Sven;
    long Macy;

    cout<<"Choose your Character- 1.Sven or 2.Macy: ";
    cin>>input;
    cin.ignore();

    if ( input == Sven ){
        cout<<"Welcome to CRPG, my good Sir!";
    }

    if ( input == Macy ){
        cout<<"Girls cant fight, go back: ";
    }
}

所以这里的代码就是我目前所拥有的。当我运行程序时,它允许我输入我想要选择的角色的名称。但是,输出始终只是文本的空白区域。我或多或少是 C++ 新手,但是我有很好的先验知识。任何帮助都很棒。

【问题讨论】:

  • SvenMacy 未分配值。它们可以包含任何东西。在声明它们时为它们分配值,例如 long Sven = 1;long Macy = 2;
  • 哦,我会试试的。谢谢。编辑:它没有成功。我什至尝试了if ( input == 1 )long Sven = 1;。还是空白。
  • cin.ignore() 移动到程序的最后。你在输入什么字符串?您应该输入12。如果您在控制台中输入SvenMacy,请使用std::string 并与"Sven""Macy" 进行比较。
  • 只需刷新cout 即可查看实际输出:将cout &lt;&lt; endl; 放在最后。

标签: c++ if-statement int cout cin


【解决方案1】:

让我大吃一惊的是你说它允许我输入我想选择的角色的名字

在这种情况下,继续比较字符串:

编辑:正如 Mohammed 所建议的,可以直接比较字符串:

string input;

cout<<"Choose your Character- 1.Sven or 2.Macy: ";
cin>>input;
cin.ignore();

if ( input == "Sven" ){
    cout<<"Welcome to CRPG, my good Sir!";
}

else if ( input == "Macy"){
    cout<<"Girls cant fight, go back: ";
}

【讨论】:

  • 当您使用std::string 时为什么要strcmp
  • 真的,我的意思是 C 字符串。在这种情况下,您可以使用 == 或 std::string::compare。
  • 输入else,你就有了我的:p
  • 哈哈是的,这是一个好点。我只是不想从 OP 中更改很多代码。虽然感谢您指出,但会做。
猜你喜欢
  • 1970-01-01
  • 2020-03-04
  • 1970-01-01
  • 1970-01-01
  • 2014-12-27
  • 1970-01-01
  • 1970-01-01
  • 2022-08-19
  • 1970-01-01
相关资源
最近更新 更多