📅  最后修改于: 2023-12-03 14:39:41.078000             🧑  作者: Mango
在编程中,我们经常需要读取和写入二进制数据。C语言提供了一些函数和宏来处理二进制数据的输入和输出。本文介绍了有关二进制数据的输入和输出的C语言函数和宏。
fread
和fwrite
是C语言中用于读取和写入二进制数据的函数。这两个函数的原型分别是:
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
这里,ptr
是指向要读取或写入数据的缓冲区的指针,size
是每个数据项的字节数,count
是要读取或写入的数据项数,stream
是指向文件的指针。这两个函数均返回成功读取或写入的数据项数。
以下是一个使用fread
和fwrite
的例子(以读取和写入一个整数为例):
#include <stdio.h>
int main() {
int x = 100;
FILE *fp = fopen("data.bin", "wb");
fwrite(&x, sizeof(x), 1, fp);
fclose(fp);
int y;
fp = fopen("data.bin", "rb");
fread(&y, sizeof(y), 1, fp);
fclose(fp);
printf("%d\n", y);
return 0;
}
在上面的例子中,我们将整数x
写入名为data.bin
的二进制文件中,并从该文件中读取到整数y
中。
fprintf
和fscanf
是C语言中用于格式化输入和输出的函数。这两个函数的原型分别是:
int fprintf(FILE *stream, const char *format, ...);
int fscanf(FILE *stream, const char *format, ...);
这里,stream
是指向文件的指针,format
是格式化字符串,还有其他可选参数(这里用省略号表示)。这两个函数均返回成功读取或写入的数据项数。
以下是一个使用fprintf
和fscanf
的例子(以读取和写入一个整数为例):
#include <stdio.h>
int main() {
int x = 100;
FILE *fp = fopen("data.txt", "w");
fprintf(fp, "%d", x);
fclose(fp);
int y;
fp = fopen("data.txt", "r");
fscanf(fp, "%d", &y);
fclose(fp);
printf("%d\n", y);
return 0;
}
在上面的例子中,我们将整数x
写入名为data.txt
的文本文件中,并从该文件中读取到整数y
中。
除了fprintf
之外,C语言还提供了一些其他用于二进制数据的输出函数和宏。以下是一些重要的函数和宏:
putc
和putchar
函数:将一个字符写入文件。fputs
和puts
函数:将一个字符串写入文件。fwrite
函数:将二进制数据写入文件。EOF
宏:表示文件结束(End-Of-File)。除了fscanf
之外,C语言还提供了一些其他用于二进制数据的输入函数和宏。以下是一些重要的函数和宏:
getc
和getchar
函数:从文件中读取一个字符。fgets
和gets
函数:从文件中读取一行字符串。fread
函数:从文件中读取二进制数据。EOF
宏:表示文件结束(End-Of-File)。本文介绍了C语言中用于读取和写入二进制数据的函数和宏。我们介绍了fread
、fwrite
、fprintf
、fscanf
等函数和宏的用法。这些函数和宏非常有用,能够方便地读取和写入二进制数据。