首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iostream的问题

iostream的问题
EN

Stack Overflow用户
提问于 2010-08-26 02:20:11
回答 2查看 199关注 0票数 4

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

代码:

代码语言:javascript
复制
#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,有什么问题吗?还是我的代码有问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-26 02:23:15

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

票数 4
EN

Stack Overflow用户

发布于 2010-08-26 02:23:10

cin>>n读取数字,但将新行保留在缓冲区中。当您调用getline时,它会将换行符作为空行读取,打印出来,然后从main返回。无论如何,在调用getline之前,您需要将该行的其余部分从输入缓冲区中取出。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3569005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档