1.在用getchar 和putchar实现文件复制时:
例如:
int c;
c=getchar();
while(c!=EOF) {
putchar(c);
c=getchar();
}
//这里c之所以用int型,是因为c必须足够大存放getchar函数的所有返回值,用char型无法包含EOF!!!!
2. 关于EOF:
EOF不是特殊字符,而是一个定义在头文件stdio.h的常量,一般等于-1。
在 UNIX中, EOF表示能从交互式 shell (终端) 送出 Ctrl+D (习惯性标准)。在微软的 DOS 与 Windows 中能送出 Ctrl+Z.
相关函数:
int feof(FILE *stream);
返回值 当文件指针到达文件结尾时,函数返回非零值,否则返回0.
3.关于%
%a,%A 读入一个浮点值(仅C99有效)
%c 读入一个字符
%d 读入十进制整数
%i 读入十进制,八进制,十六进制整数
%o 读入八进制整数
%x,%X 读入十六进制整数
%s 读入一个字符串,遇空格、制表符或换行符结束。
%f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。
%p 读入一个指针
%u 读入一个无符号十进制整数
%n 至此已读入值的等价字符数
%[] 扫描字符集合
%% 读%符号