fwrite与fscanf的区别
时间: 2024-06-12 16:11:18 浏览: 81
fwrite和fscanf都是文件操作函数,但是它们的作用不同。fwrite是将指定个数的数据写入文件中,而fscanf是从文件中按照指定格式读取数据。具体来说,fwrite的函数原型为fwrite(const void *ptr, size_t size, size_t count, FILE *stream),其中ptr是要写入的数据的指针,size是每个数据块的大小,count是要写入的数据块的个数,stream是文件指针。而fscanf的函数原型为fscanf(FILE *stream, const char *format, ...),其中stream是文件指针,format是格式字符串,后面的参数是要读取的数据的地址。因此,fwrite和fscanf的区别在于它们的作用不同,一个是写入数据,一个是读取数据。
相关问题
fwrite和fscanf的区别
fwrite和fscanf都是C语言中用于文件读写的函数,它们的区别在于:
1. fwrite是将数据以二进制的形式直接写入文件,不经过转换,而fscanf是将文件中的数据按照指定格式读取后再进行转换。
2. fwrite的函数原型为size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream),其中ptr为要写入的数据的指针,size为每个数据块的大小,count为数据块的个数,stream为文件指针。返回值为成功写入的数据块个数。而fscanf的函数原型为int fscanf(FILE* stream,const char* format,[argument...]),用法类似于scanf函数,返回值为成功读入参数的个数,当读到文件末尾EOF时,返回-1。
3. fwrite适用于写入二进制文件,而fscanf适用于读取文本文件。
下面是一个fwrite的例子:
```c
#include <stdio.h>
#include <string.h>
int main () {
FILE *fp;
char str[] = "This is a test";
fp = fopen("test.txt", "wb");
fwrite(str, 1, strlen(str), fp);
fclose(fp);
return 0;
}
```
上述代码将字符串"This is a test"以二进制形式写入文件test.txt中。
下面是一个fscanf的例子:
```c
#include <stdio.h>
int main () {
FILE *fp;
char str[100];
fp = fopen("test.txt", "r");
fscanf(fp, "%s", str);
printf("Read String |%s|", str );
fclose(fp);
return 0;
}
```
上述代码从文件test.txt中读取一个字符串并输出。
fscanf和fprintf fwrite
fscanf是C语言中的一个函数,用于从文件中读取格式化数据。它的作用类似于scanf函数,但是scanf函数是从标准输入流中读取数据,而fscanf函数是从文件中读取数据。
fprintf也是C语言中的一个函数,用于将格式化数据写入文件。它的作用类似于printf函数,但是printf函数是将数据输出到标准输出流,而fprintf函数是将数据写入文件。
fwrite是C语言中的一个函数,用于将二进制数据写入文件。它的作用类似于fprintf函数,但是fwrite函数是将二进制数据写入文件,而fprintf函数是将格式化数据写入文件。
阅读全文