原文:scanf读取输入时读入空格/回车的情况及处理方法

这是我遇到的情况,圈起来的地方读入时,会把前面箭头处读n时的回车读入,导致读取不正确,一般情况下,这种问题会出现在 d与 c搭配的情况下。 原因: 使用scanf从输入流缓冲区中读取数据,系统会把从键盘输入的字符先放入缓冲队列,直到键入回车键或者遇到文件结束符EOF时,再从输入缓冲区逐个读取字符 解决: ,用 c读入多余的回车符 ,在 c前面加上一个空格 ...

2020-03-19 22:14 0 1282 推荐指数:

查看详情

scanf输入空格

scanf输入数据时遇到空格和遇到回车都会结束输入 如果我们想要输入一串字符如:Hello World! 打印出的结果只会是Hello,因为在Hello之后遇到了空格结束了输入. 那么如何解决这个问题呢? 这是一种正则用法,更多的用法日后再说. ...

Mon Apr 05 21:42:00 CST 2021 0 270
C++利用cin输入时检测回车方法

今天做TJU的OJ ,其中一道题是先读入一个字符串,再读入一个整数,循环往复,直到字符串是空,也就是说回车键结束循环。 但是cin对空格回车都不敏感,都不影响继续读入数据,所以需要一种新的方式检测回车方法一:利用getchar()函数 getchar()是stdio.h中 ...

Thu Oct 25 18:46:00 CST 2018 0 3654
scanf读入空格字符串

当不支持gets时,getline又比较慢,可以使用scarf("%[^\n]s", str);来读入以换行表示读完的字符串,其中[^char]表示以char为结束。 ...

Tue Aug 20 05:47:00 CST 2019 0 487
scanf说起之1:scanf函数和回车空格 及其返回值

scanf回车的关系:   先看一个我们经常使用的代码:   scanf 的各种格式中,%d、%c、%s三种最常用,通常都是以回车作为一次输入的结束。由于对字符解析方式及字符特点不同(如数字中一般不会出现空格回车等特殊字符)不同,%d格式一般不会在连续输入时,遇到问题。而%s ...

Mon Apr 08 04:49:00 CST 2013 0 10549
C语言输入字符串,gets() 能读取含有空格的字符串,而 scanf() 不能。

scanf() 读取字符串时以空格为分隔,遇到空格就认为当前字符串结束了,所以无法读取含有空格的字符串。 gets() 认为空格也是字符串的一部分,只有遇到回车键时才认为字符串输入结束,所以,不管输入了多少个空格,只要不按下回车键,对 gets() 来说就是一个完整的字符串 ...

Thu Jan 28 17:17:00 CST 2021 0 341
scanf输入遇到空格自动结束

所以要读入空格字符串,正确用法如下面: while(gets(a)!=NULL){..} 因为: EOF在scanf中被定义为-1, 对应ctrl+z。 而gets返回值:读入成功,返回与参数buffer相同的指针;读入过程中遇到EOF ...

Fri Mar 06 02:50:00 CST 2020 0 1174
scanf()读取空格的字符串

#include <stdio.h> int main() { char str[128]; scanf( "%[^\n]", str ); printf( "%s\n", str ); return 0; }   scanf中的正则表达式 ...

Thu Apr 03 07:18:00 CST 2014 0 5980
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM