格式化输入--scanf
输入函数scanf对应输出函数printf,它在与后者相反的方向上提供相同的转换功能,格式:
1 int scanf(char *format, ...);
另外一个输入函数sscanf,它用于从一个字符串(而不是标准输入)中读取字符串,格式:
int sscanf(char *string, char *format, arg1, arg2, ...);
它按照格式参数规定的格式扫描字符串string,并把结果分别保存到arg1、arg2、...这些参数中,scanf和sscanf的这些参数必须都是指针.
文件访问
在读写一个文件之前,必须通过库函数fopen打开该文件.该函数将返回一个可以用于文件读写操作的文件指针,它指向一个包含文件信息的结构,这些信息包括:缓冲区位置、缓冲区中当前字符的位置、文件的读或写状态、是否出错或是否已经到达文件的尾部等等.
1 FILE *file; 2 FILE *fopen(char *name, char *mode);
第二个参数是访问模式,允许的模式包括:读("r")、写("w")及追加("a").某些系统还区分文本文件和二进制文件,对后者的访问需要在模式字符串中增加字符"b".
int getc(FILE *fp);
getc从文件中返回一个字符,它返回fp指向的输入流中的下一个字符.如果到达文件尾部或者出现错误,则返回EOF.
int putc(int c, FILE *fp);
putc是一个输出函数,它将字符c写入fp指向的文件中,并返回写入的字符.如果发生错误,则返回EOF.类似于getchar、putchar,但是getc和putc是宏而不是函数.
对于文件的格式化输入和输入可以使用函数fscanf、fprintf.它们与scanf和fprintf的区别仅仅是在于它们的第一个参数是一个指向所要读写的文件的指针,格式:
int fscanf(FILE *fp, char *format, ...); int fprintf(FILE *fp, char *format, ...);
当文件指针不再需要时就应该释放,这是一个好的编程习惯.函数fclose可以断开由fopen函数建立的文件指针和外部名之间的连接,并释放文件指针以供其他文件使用.
行输入和行输出
标准库提供了一个输入函数,它可以从指向的文件中读取一个输入行(包括换行符),并将它存放在字符数组中,格式如下:
char *fgets(char *line, int maxline, FILE *fp);
该函数最多可以读取maxline - 1个字符.与它相反的函数fputs将一个字符串(不需要包含换行符)写入到一个文件,格式:
int fputs(char *line, FILE *fp);
如果发生错误,该函数会返回EOF或者一个非负值.
其他函数
介绍了头文件<string.h>字符串操作函数、<ctype.h>字符类别测试和转换函数、<math.h>数学函数以及其他的命令执行函数、存储管理函数以及随机数发生器函数.
今天的学习就到这里了,明天继续,加油!