当前位置:首页信息竞赛 > 正文

详细讲解C++中的 cstdio

作者:野牛程序员:2023-02-21 22:29:08信息竞赛阅读 3839

cstdio 是 C++ 标准库中的一个头文件,提供了一些与标准 I/O 操作相关的函数和类型。它是 C 语言头文件 stdio.h 的 C++ 版本,因此包含了 C 语言标准库的所有函数。以下是 cstdio 中常用的函数和类型:

文件操作

fopen 和 fclose

fopen 函数用于打开一个文件,并返回一个指向该文件的指针。该函数的原型如下:

FILE* fopen(const char* filename, const char* mode);

其中,filename 表示文件名,mode 表示文件打开模式,例如 "r" 表示读取模式,"w" 表示写入模式,"a" 表示追加模式。如果文件打开成功,该函数返回一个指向文件的指针,否则返回 NULL

fclose 函数用于关闭一个文件,它的原型如下:

int fclose(FILE* stream);

其中,stream 表示文件指针,如果文件关闭成功,返回 0,否则返回一个非零值。

fread 和 fwrite

fread 函数用于从一个文件中读取数据,它的原型如下:

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 和 fscanf

fprintf 函数用于向一个文件中输出格式化的数据,它的原型如下:

int fprintf(FILE* stream, const char* format, ...);

其中,stream 表示文件指针,format 表示输出格式,与 printf 函数的格式相同。如果输出成功,该函数返回输出的字符数,否则返回一个负数。

fscanf 函数用于从一个文件中读取格式化的数据,它的原型如下:

int fscanf(FILE* stream, const char* format, ...);

其中,stream 表示文件指针,format 表示输入格式,与 scanf 函数的格式相同。如果读取成功,该函数返回输入的数据项数量,否则返回一个负数。

标准输入输出

scanf 和 printf

scanf 函数用于从标准输入中读取格式化的数据,它的原型如下:

int scanf(const char* format, ...);

其中,format 表示输入格式,与 fscanf 函数的格式相同。如果读取成功,该函数返回输入的数据项数量,否则返回一个负数。

printf 函数用于向标准输出中输出格式化的数据,它的原型如下:

int printf(const char* format, ...);

其中,format 表示输出格式,与 fprintf 函数的格式相同。如果输出成功,该函数返回输出的字符数,否则返回一个负数。

getchar 和 putchar

getchar 函数用于从标准输入中读取一个字符,它的原型如下:

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 和 ftell

fseek 函数用于设置文件流的位置,它的原型如下:

int fseek(FILE* stream, long int offset, int origin);

其中,stream 表示文件指针,offset 表示相对于 origin 的偏移量,origin 表示起始位置。如果设置成功,该函数返回 0,否则返回一个非零值。

ftell 函数用于获取文件流的当前位置,它的原型如下:

long int ftell(FILE* stream);

如果获取成功,该函数返回当前位置的偏移量,否则返回一个负数。

perror

perror 函数用于输出最近一次系统调用的错误信息,它的原型如下:

void perror(const char* str);

其中,str 表示自定义错误信息的前缀。该函数会输出 str 和最近一次系统调用的错误信息,以及一个换行符。

以上是 cstdio 中常用的一些函数和类型。在实际编程中,我们经常需要用到这些函数和类型来进行文件读写、输入输出等操作。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • 网站建设
  • 最新推荐

    热门点击