14.2.5 fprintf函数和fscanf函数
f前缀代表file,这里的输入输出设备不再是键盘和显示器,也不是函数sscanf和sprintf中的C风格字符串,而是文件。
首先来看一下高层I/O中的文件机制,头文件<cstdio>中包含了文件结构FILE的定义,该结构用以描述文件当前的状态,但从编程的层面看,不必了解其中的实现细节,会应用即可。前面提及任何设备包括输入输出设备都可以看成是文件,高层I/O也是如此,在<cstdio>中定义了3个文件指针,即stdin、stdout和stderr,分别代表标准输入(与键盘相关)、标准输出(与显示器相关)和标准错误输出(与显示器相关),这和<iostream>流类库头文件中预定义的cout、cin和cerr有些类似。
fprintf和fscanf的原型如下所示。
int fprintf(FILE*ofp,控制字符串,参数表); int fscanf(FILE*ifp,控制字符串,参数表);
参数表中参数的个数同样是任意的,fprintf函数用于将转换后的控制字符串写入到ofp指向的文件中,fscanf函数用于从ifp指向的文件中读取字节信息为参数表中的参数赋值。
实际上,函数printf和scanf分别等价于下述代码。
fprintf(stdout,控制字符串,参数表) fscanf(stdin,控制字符串,参数表)