关于先输入整型再输入字符串型是否需要吸收换行符的归纳汇总

本文探讨了C++中使用scanf和getline进行输入时的常见陷阱,如如何正确处理换行符和空格,避免导致后续输入错误。通过具体示例,展示了在字符串和字符输入时,如何编写代码来确保程序的正确运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 输入:

5
sky is grey
cold
very cold
stop
3
it is good enough to be proud of
good
it is quite good

分析: 先输入一个整型,再用 getline 输入 string 型,要吸收换行符,否则第一个 string 会读取到一个换行符。

输入代码 : 

while(scanf("%d%*c",&n) != EOF){   //吸收换行符
        int num = 0;
        while(n--){
            getline(cin,str);
            if(str == "stop"){
                break;
            }
            nodes[num].name = str;
            nodes[num++].length = str.size();
        }
}

2.输入

12 + 34
54 - 25
3 * 6
45 / 0
5 !
34 % 0

分析: 先输入一个整型,再用 printf 输入一个 char ,中间有一个空格需要吸收,否则就会读入 char  中。

输入代码:

while(scanf("%d%*c",&n) != EOF){   //吸收空格
		scanf("%c",&o);	
		if(o == '+'){
			scanf("%d",&m);
			printf("%d\n",n + m);
		}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值