c++ - iostream 的问题

标签 c++ gcc mingw

我正在使用 MinGW 在 Windows 上运行 g++ 编译器。每当我运行以下代码时,编译器都会给出奇怪的结果。

代码:

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    int n;
    string a;
    cin>>n;
    getline(cin,a);
    cout<<a;
    return 0;
}

编译代码时没有出现问题。但是一旦我运行代码并为 n 提供输入,它就不会要求输入 a 并结束。我正在使用 MinGW 5.1.6,这有什么问题吗?或者我的代码有什么问题吗?

最佳答案

问题出在您的代码中。简而言之,您键入用于提交 n 数字的换行符仍存储在输入缓冲区中,因为它不是数字输入,因此不会被 n 消耗。 getline 函数然后吸收换行符并完成。

关于c++ - iostream 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3569005/

相关文章:

c++ - Rcpp:在不导出 C++ 函数的情况下在 R 中调用 C++ 函数

c++ - 链接可执行文件中的共享库与另一个共享库

C++ 无法让 cin 从文件重定向中读取结束行字符

gcc - 如何构建需要clock_gettime函数的Linux/OSX makefile

使用较新的编译器编译 linux 2.6 内核模块

c - windows mingw下使用zlib

c++ - 尝试调用 registerSource 时找不到 .rcc 文件

将十六进制字符串转换为 signed int 会在不同平台上产生不同的值

c++ 编译器可以在用户定义的和编译器生成的复制构造函数之间自由选择吗?

c - 当使用 NASM extern 语句访问 printf 时,GCC 输出错误 "undefined reference to ` printf'"