标题:输入整数后再输入字符串过滤掉上次输入的换行符
取消只看楼主
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
结帖率:58.18%
已结贴  问题点数:20 回复次数:1 
输入整数后再输入字符串过滤掉上次输入的换行符
先输入整数再输入字符串,如果用scanf("%d",&a)那么字符串还没输入就结束了
我在网上查了下应该是换行符在缓冲区的原因。
然后网上有人说,scanf 用空白符结尾时,scanf会跳过空白符去读下一个字符,所以你必须再输入一个数;
可是我不明白用scanf("%d\n",&a);后为什么换行符不会被字符串读取了
http://blog.

程序代码:
#include <iostream>
#include <string>

using namespace std;

int main(     )
{
    string str1;
    string str2;

    int a;
    scanf_s("%d\n", &a);
    getline(cin,str1);
    getline(cin, str2);
    cout << str1<<endl;
    cout << str2 << endl;

    scanf_s("%d\n", &a);                  //这里多了一个回车符\n             
    if (a % 4 != 0)
        printf("the num is no 闰年\n");
    else if (a % 100 && a % 400 != 0)
        printf("the num is no 闰年\n");
    else
        printf("the num is 闰年\n");

    return 0 ;
}
搜索更多相关主题的帖子: 换行符 字符串 缓冲区 网上 
2016-11-01 15:03
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
得分:0 
回复 6楼 书生牛犊
c语言看的是谭浩强的那本书,感觉内容少了。
2016-11-04 10:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-470565-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022135 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved