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函数相同