详细讲解C++中的 cstdio
cstdio 是 C++ 标准库中的一个头文件,提供了一些与标准 I/O 操作相关的函数和类型。它是 C 语言头文件 stdio.h 的 C++ 版本,因此包含了 C 语言标准库的所有函数。以下是 cstdio 中常用的函数和类型:
文件操作fopen 和 fclosefopen 函数用于打开一个文件,并返回一个指向该文件的指针。该函数的原型如下:
FILE* fopen(const char* filename, const char* mode);其中,filename 表示文件名,mode 表示文件打开模式,例如 "r" 表示读取模式,"w" 表示写入模式,"a" 表示追加模式。如果文件打开成功,该函数返回一个指向文件的指针,否则返回 NULL。
fclose 函数用于关闭一个文件,它的原型如下:
int fclose(FILE* stream);其中,stream 表示文件指针,如果文件关闭成功,返回 0,否则返回一个非零值。
fread 和 fwritefread 函数用于从一个文件中读取数据,它的原型如下:
size_t fread(void* ptr, size_t size, size_t count, FILE* stream);其中,ptr 表示读取数据的缓冲区地址,size 表示每个数据项的大小,count 表示数据项的数量,stream 表示文件指针。如果读取成功,该函数返回实际读取的数据项数量,否则返回一个小于 count 的值。
fwrite 函数用于向一个文件中写入数据,它的原型如下:
size_t fwrite(const void* ptr, size_t size, size_t count, FILE* stream);其中,ptr 表示写入数据的缓冲区地址,size 表示每个数据项的大小,count 表示数据项的数量,stream 表示文件指针。如果写入成功,该函数返回实际写入的数据项数量,否则返回一个小于 count 的值。
fprintf 和 fscanffprintf 函数用于向一个文件中输出格式化的数据,它的原型如下:
int fprintf(FILE* stream, const char* format, ...);其中,stream 表示文件指针,format 表示输出格式,与 printf 函数的格式相同。如果输出成功,该函数返回输出的字符数,否则返回一个负数。
fscanf 函数用于从一个文件中读取格式化的数据,它的原型如下:
int fscanf(FILE* stream, const char* format, ...);其中,stream 表示文件指针,format 表示输入格式,与 scanf 函数的格式相同。如果读取成功,该函数返回输入的数据项数量,否则返回一个负数。
标准输入输出scanf 和 printfscanf 函数用于从标准输入中读取格式化的数据,它的原型如下:
int scanf(const char* format, ...);其中,format 表示输入格式,与 fscanf 函数的格式相同。如果读取成功,该函数返回输入的数据项数量,否则返回一个负数。
printf 函数用于向标准输出中输出格式化的数据,它的原型如下:
int printf(const char* format, ...);其中,format 表示输出格式,与 fprintf 函数的格式相同。如果输出成功,该函数返回输出的字符数,否则返回一个负数。
getchar 和 putchargetchar 函数用于从标准输入中读取一个字符,它的原型如下:
int getchar();
如果读取成功,该函数返回读取到的字符,否则返回 EOF。
putchar 函数用于向标准输出中输出一个字符,它的原型如下:
int putchar(int c);
其中,c 表示要输出的字符,如果输出成功,该函数返回输出的字符,否则返回一个负数。
其他函数和类型FILE 类型FILE 类型是一个结构体类型,表示一个文件流。它的定义如下:
typedef struct _iobuf {
char* _ptr;
int _cnt;
char* _base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char* _tmpfname;
} FILE;fseek 和 ftellfseek 函数用于设置文件流的位置,它的原型如下:
int fseek(FILE* stream, long int offset, int origin);其中,stream 表示文件指针,offset 表示相对于 origin 的偏移量,origin 表示起始位置。如果设置成功,该函数返回 0,否则返回一个非零值。
ftell 函数用于获取文件流的当前位置,它的原型如下:
long int ftell(FILE* stream);如果获取成功,该函数返回当前位置的偏移量,否则返回一个负数。
perrorperror 函数用于输出最近一次系统调用的错误信息,它的原型如下:
void perror(const char* str);其中,str 表示自定义错误信息的前缀。该函数会输出 str 和最近一次系统调用的错误信息,以及一个换行符。
以上是 cstdio 中常用的一些函数和类型。在实际编程中,我们经常需要用到这些函数和类型来进行文件读写、输入输出等操作。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
