【发布时间】:2018-08-08 18:56:34
【问题描述】:
我是 C++ 的新手,我尝试在谷歌上搜索解决方案,但我遇到的每个问题都与我面临的问题大相径庭,所以我无法弄清楚。我遇到的问题是当我从 powershell 运行 .exe 时,我的“if”语句被完全忽略了。
#include <iostream>
#include <string>
using namespace std;
int main()
{
string q;
string w;
string Bob;
string Emily;
{
cout << "Who is this? ";
cin >> q;
if (q == Bob)
{
cout << "Hey there bro. ";
}
if (q == Emily)
{
cout << "Hi friend :) ";
}
else
{
cout << "Oh hey " << q << ", how are you? ";
}
cin >> w;
cout << "Hey, that's " << w;
}
return 0;
}
当我输入我的名字为“Bob”时,我应该会看到来自 if 语句的消息“Hey there bro”。但我看到的是 else 语句,“哦,嘿,鲍勃,你好吗?”。当我输入艾米丽时也是如此。只看到 else 语句。
我没有收到任何错误(在 Visual Studio 中运行)所以我在哪里搞砸了?
【问题讨论】:
-
你在哪里设置
Bob或Emily? -
下次可能要使用调试器。
-
将
string Bob;更改为string Bob{"Bob"};看看会发生什么。 -
您是否有意将 q 与文字字符串“Bob”和“Emily”进行比较?您的代码示例表明可能是这种情况,在这种情况下,您应该将它们写为字符串文字(例如“Bob”)。您拥有它们的方式是,它们是尚未分配任何值的空字符串变量。
-
Re,“如果你犯了错误,Visual Studio 不会给你警告和错误吗?”错误可以在许多不同的层面上犯。像 Visual Studio 这样的工具可以在您尝试运行程序之前找到并突出显示最简单的错误。 debugger 可以帮助您发现更深层次的错误,这些错误只有在您实际运行程序时才会变得明显,并且它并没有按照您的预期执行。
标签: c++ if-statement c++14