c++ - 一个字符串的 Cout 给出了一个错误并且很难有一些洞察力帮助吗?

标签 c++ string cout cin

我找不到这段代码中的错误,谁能告诉我吗?我运行了调试,但错误是无法理解的。

#include "stdafx.h"
#include <iostream>

using namespace std;

int main() 
{ 
  string name; 
  cout << "Input your name please?" << endl; 
  cin >> name; 

  if
      {
          (name == "Bart Simpson")  
    cout << "You have been very naughty" << endl; 
  }
return 0;
}

最佳答案

问题:

  1. 您缺少一些 #include,这可能会导致您的初始编译器错误。
  2. 你的 if 语句有一个简单的语法错误。
  3. 使用流提取运算符永远不会产生其中包含空格的字符串。

以下应该会如您所愿:

#include "stdafx.h"
#include <iostream>
#include <ostream>
#include <string>

using namespace std;

int main()
{
    cout << "Input your name please?" << endl;

    string name;
    getline(cin, name);
    if (name == "Bart Simpson")
    {
        cout << "You have been very naughty" << endl;
    }

    return 0;
}

(您需要为 std::stringstd::getlineostream 包含 string对于 std::endl。)

关于c++ - 一个字符串的 Cout 给出了一个错误并且很难有一些洞察力帮助吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8085892/

相关文章:

c++ - delete命令会清除new分配的内存吗?

c++ - 更改类私有(private)数据成员的顺序是否会破坏 ABI

arrays - 从模型中返回一个全小写的字符串数组

c++ - Windows - protected 共享内存

c++ - 奇怪的 QString 初始化为 0 - 它有什么作用?

python - 如何将列表与 python 中的另一个列表进行匹配

java - 如何将字符串拆分为整数?

c++ - 什么可以解释 std::cout 不显示任何内容?

c++ - boost::asio 在从串行端口读取时阻塞 std::cout

c++ cout 使用自定义 Stack 类的奇怪行为