磁盘文件的读写实验报告
时间: 2023-08-03 17:07:11 浏览: 94
实验目的:
了解磁盘文件的读写操作,掌握文件操作函数的使用方法。
实验设备:
Windows 10 操作系统,Dev-C++ 集成开发环境。
实验内容:
1. 文件的创建和打开
使用函数fopen()可以创建和打开文件。fopen()函数的格式为:
FILE *fopen(const char *filename, const char *mode);
其中,filename是文件名,mode是文件打开方式,有“r”、“w”、“a”等选项。
- “r”表示以只读方式打开文件;
- “w”表示以只写方式打开文件,如果文件存在,则清空文件内容;
- “a”表示以追加方式打开文件,即在文件末尾添加新内容。
例如,以下代码可以创建一个名为test.txt的文件,并以只写方式打开:
```c
#include <stdio.h>
int main() {
FILE *fp;
fp = fopen("test.txt", "w");
fclose(fp);
return 0;
}
```
2. 文件的读写
使用函数fprintf()和fscanf()进行文件读写操作。fprintf()函数的格式为:
int fprintf(FILE *stream, const char *format, ...);
其中,stream是文件指针,format是输出格式,后面的“...”表示可变参数。
例如,以下代码可以向test.txt文件中写入一行文字:
```c
#include <stdio.h>
int main() {
FILE *fp;
fp = fopen("test.txt", "w");
fprintf(fp, "%s", "Hello World!\n");
fclose(fp);
return 0;
}
```
fscanf()函数的格式为:
int fscanf(FILE *stream, const char *format, ...);
例如,以下代码可以从test.txt文件中读取一行文字:
```c
#include <stdio.h>
int main() {
FILE *fp;
char str[100];
fp = fopen("test.txt", "r");
fscanf(fp, "%s", str);
printf("%s\n", str);
fclose(fp);
return 0;
}
```
3. 文件的复制
使用函数fread()和fwrite()进行文件复制操作。fread()函数的格式为:
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
其中,ptr是存储读取数据的缓冲区,size是每个数据块的字节数,count是数据块的个数,stream是文件指针。
fwrite()函数的格式为:
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
其中,ptr是存储写入数据的缓冲区,size是每个数据块的字节数,count是数据块的个数,stream是文件指针。
例如,以下代码可以将test.txt文件复制一份到test_copy.txt文件中:
```c
#include <stdio.h>
int main() {
FILE *fp1, *fp2;
char buffer[1024];
size_t len;
fp1 = fopen("test.txt", "rb");
fp2 = fopen("test_copy.txt", "wb");
while ((len = fread(buffer, 1, sizeof(buffer), fp1)) > 0) {
fwrite(buffer, 1, len, fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
```
实验总结:
通过本次实验,我学习了磁盘文件的读写操作,掌握了文件操作函数的使用方法。在实验过程中,我发现文件操作是非常常用的操作,在计算机编程中有着广泛的应用。
阅读全文