原文:scanf的格式串中为何不应以\n结尾?

如果一个scanf的格式串以 n结尾,那么在读取完后还会阻塞等待,比如: 这种情况,输入一个数字然后敲下回车后,程序还是阻塞着的。为什么呢 在仔细读了一遍 C程序设计现代方法 上的描述后,搞明白了。书上有这段描述: 处理格式串中的普通字符时,scanf函数采取的动作依赖于这个字符是否为空白字符。 空白字符。当在格式串中遇到一个或多个连续的空白字符时,scanf函数从输入中重复读空白字符直到遇到一个 ...

2017-09-03 12:38 0 1273 推荐指数:

查看详情

程序员约架事件,薛非为何不应战?

http://www.zhihu.com/question/25574933/answer/67596449 知道事件经过的人都知道,林建入是在被驳的理屈词穷的情况下,气急败坏,恼羞成怒地为了 ...

Sat Oct 31 22:21:00 CST 2015 1 3887
字符格式化输入/输出 [printf & scanf]

一、字符   C 语言中并没有专门用于储存字符的变量类型,字符都被存储在char类型的数组。在数组,会存在一个空字符(null character)【一个非打印字符,其 ASCII 码值是(或等价于)0】,C语言用其来标记字符的结束。也就是说,char 型数组的容量必须比待存储字符 ...

Fri May 31 04:51:00 CST 2019 0 458
关于 scanf(“%[^\n]%*c“,str)

在做题中,常常要求读入一行字符,而这字符里面可能有空格、制表符等空白字符,如果直接用%s是不可以的,于是有些人就想到用gets(),但由于gets很难控制,故而一般不推荐使用,所以用%[^\n]就可以很好的解决这个问题了,^表示"非"即读入其后面的字符就结束读入。#include < ...

Wed Jun 16 04:39:00 CST 2021 0 268
scanf("%[^\n]",str)

题目地址 scanf() 遇到空格结束输入 可以用 scanf("%[^\n]" , str) 输入一行数据包括空格,直到遇到换行符 ' \n ' ...

Sat Sep 21 06:54:00 CST 2019 0 436
while(scanf("%d",&n)!=EOF)

“测试输入包含若干测试实例。当N为0时,输入结束,该实例不被处理。” 这句话 是最早我对ACM的印象 以前也没见过这种输入要求 做第一道题的时候就卡住了 上网看别人的代码 都有一句 while(scanf("%d",&n)!=EOF) "scanf 函数还能放while里 ...

Tue Oct 30 18:46:00 CST 2018 0 1721
C++字符结尾标志\0

\0是C++字符结尾标志,存储在字符结尾,它虽然不计入长,但要占一个字节的内存空间。在百度百科查看\0词条,会有这样一句话:c/c++规定字符结尾标志为'\0'。有人可能认为,在C语言里(C++会不同),'\0'并不是字符型,而是int型。在这里,我们姑且和百度词条作者 ...

Tue Sep 10 23:06:00 CST 2013 10 8149
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM