c++ - std::cin 到 char 数组会跳过空格吗?

标签 c++ stdin

代码:

#include <iostream>

#define BUFF 100

using namespace std;

int main(int argc, char* argv[])
{
    char input[BUFF];

    cout << "Input:\n>";

    cin >> input;

    cout << "\n\nOutput:" << input;

    cin >> input;
    cin >> input;
}

当您将输入读入 char 数组时,为什么会跳过空格?哦,还有 2 个 cin(在末尾),因为它的行为有点奇怪,如果在有 1 个 cin 时输入空格,它就会退出……也不知道为什么。

我输入cup cake,它输出cup

最佳答案

问题是你想读什么?如果你想读取一行,你应该使用 getline,如果可能的话使用 std::string 因为它会根据需要增长字符串:

#include <iostream>
#include <string>
int main() {
   std::string line;
   std::getline( std::cin, line );
}

关于c++ - std::cin 到 char 数组会跳过空格吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7240843/

相关文章:

c++ - 下一个排列定义

c++ - 无法在 Windows 中使用 gcc 链接器链接头文件

python - ROS 的问题

c++ - C++中的乒乓球游戏

python - 触发围绕 readline 构建的 python 批处理的选项卡完成

c - C中多个子进程之间的管道示例

c++ - 哪个 C++ 标准头文件定义了 SIZE_MAX?

bash - Bash 函数是否可以将值输出到文件描述符,然后仅将其分配给变量?

java - Broken Pipe Java 程序在外部 C 程序 stdin 中写入并从 stdout 读取

node.js - 为什么当通过 process.stdin 流式输入时 Node 会完成/关闭?