C语言细节——标准输入输出库

1、保存getchar()的返回值变量必须是int型

     getchar()可能返回任何字符,包括EOF

2、EOF通常对应键盘ctrl+z或ctrl+d

3、fgets()在遇到文件结束符时返回的是NULL

4、在输出需要显示的时候,最好明确调用fflush(stdout)调用

5、在printf中输出‘%’需要’%%’

6、printf的%f既可以输出float又可以输出double

7、printf(“%*d”, width, x)可以输出可变的域宽度 (width可是数字也可以是变量)

8、当s为已分配内存的字符串指针,可以用scanf(“%s”,s)对字符串进行

赋值

9、对double类型,必须是scanf(“lf”,&d)。不可以使用”f”

10、scanf %d不处理结尾的换行符

       所以若后面紧跟着fgets(),则换行符会被fgets()取走。所以不要混用scanf和fgets,或者专门在scanf后用一个getchar()来接换行符

11、gets()不能被告知输入缓冲区的大小,可能导致缓冲区溢出

12、ftell()和fseek()用长整形表示文件内的偏移(位置)。因此偏移量被限制在20亿(2的31次方-1)以内

13、读取二进制文件时应该使用“rb”调用fopen()

       文本/二进制区别只是发生在文件打开时,打开后,一切i/o函数相同

posted @ 2010-05-26 17:54  红脸书生  阅读(1104)  评论(0编辑  收藏  举报