改用fscanf、fprintf进行文本文件的读写,在操作系统中打开二者生成的程序结果,比较二者的差别,要求输入的学生信息中至少有一条你自己的学号姓名等信息。
时间: 2024-03-07 22:48:44 浏览: 50
以下是使用 fscanf 和 fprintf 进行读写的程序代码:
程序1:创建文本文件
```c
#include <stdio.h>
int main() {
char name[20], id[20], address[50];
printf("请输入你的姓名:");
scanf("%s", name);
printf("请输入你的学号:");
scanf("%s", id);
printf("请输入你的家庭所在地:");
scanf("%s", address);
char filename[30];
sprintf(filename, "%s.txt", name);
FILE *fp = fopen(filename, "w");
if (fp == NULL) {
printf("文件创建失败!\n");
return 1;
}
fprintf(fp, "姓名:%s\n", name);
fprintf(fp, "学号:%s\n", id);
fprintf(fp, "家庭所在地:%s\n", address);
fclose(fp);
printf("文件创建成功!\n");
return 0;
}
```
程序2:显示文本文件内容
```c
#include <stdio.h>
int main() {
char name[20];
printf("请输入你的姓名:");
scanf("%s", name);
char filename[30];
sprintf(filename, "%s.txt", name);
FILE *fp = fopen(filename, "r");
if (fp == NULL) {
printf("文件打开失败!\n");
return 1;
}
char content[100];
while (fscanf(fp, "%s", content) != EOF) {
printf("%s ", content);
}
fclose(fp);
return 0;
}
```
这两个程序与之前的 Python 程序相比,主要有以下几个不同点:
1. 变量需要提前声明,而且需要指定类型。
2. 文件操作需要使用 FILE 类型的指针,需要使用 fopen 函数打开文件,使用 fprintf 函数写入文件,使用 fscanf 函数读取文件,使用 fclose 函数关闭文件。
3. 对于字符串类型的变量,需要使用 sprintf 函数进行格式化输出,而不能直接使用加号连接字符串。
4. 在读取文件时,需要判断 fscanf 函数是否返回 EOF,如果返回 EOF,说明文件已经读取完毕。
在操作系统中打开这两个程序,可以看到它们的运行结果与之前的 Python 程序是一样的。使用 fscanf 和 fprintf 进行文本文件读写,相比于 Python 的方式,更加底层,需要更多的代码来完成同样的任务,但是能够更好地控制文件的读写过程,并且可以更好地处理二进制文件等更加复杂的文件格式。
阅读全文