C语言文件输入输出方法

一、顺序读写文件
 
1. 使用 fprintf 和 fscanf 函数
 
-  fprintf 函数:
- 格式: fprintf(FILE *stream, const char *format,...); 
- 功能:将格式化的数据写入文件。例如:
 
FILE *fp;
int num = 10;
char str[] = "Hello";
fp = fopen("test.txt", "w");
fprintf(fp, "Number: %d, String: %s", num, str);
fclose(fp);
 
 
- 这里 fprintf 将整数 num 和字符串 str 按照指定格式写入 test.txt 文件。
-  fscanf 函数:
- 格式: fscanf(FILE *stream, const char *format,...); 
- 功能:从文件中读取格式化的数据。例如:
 
FILE *fp;
int num;
char str[20];
fp = fopen("test.txt", "r");
fscanf(fp, "Number: %d, String: %s", &num, str);
printf("Number: %d, String: %s\n", num, str);
fclose(fp);
 
 
- 此代码从 test.txt 文件中读取数据并按照格式解析。
2. 使用 fputs 和 fgets 函数
 
-  fputs 函数:
- 格式: fputs(const char *s, FILE *stream); 
- 功能:将字符串写入文件。例如:
 
FILE *fp;
char str[] = "This is a test";
fp = fopen("test.txt", "w");
fputs(str, fp);
fclose(fp);
 
 
- 这里 fputs 将字符串 str 写入 test.txt 文件。
-  fgets 函数:
- 格式: fgets(char *s, int size, FILE *stream); 
- 功能:从文件中读取一行字符串。例如:
 
FILE *fp;
char str[100];
fp = fopen("test.txt", "r");
fgets(str, 100, fp);
printf("%s", str);
fclose(fp);
 
 
- 此代码从 test.txt 文件中读取一行字符串并输出。
 
二、随机读写文件
 
1. 使用 fseek 、 ftell 和 rewind 函数实现文件指针定位
-  fseek 函数:
- 格式: fseek(FILE *stream, long int offset, int whence); 
- 功能:移动文件指针到指定位置。例如:
 
FILE *fp;
fp = fopen("test.txt", "r+");
fseek(fp, 5, SEEK_SET); // 从文件开头移动5个字节
fclose(fp);
 
-  ftell 函数:
- 格式: ftell(FILE *stream); 
- 功能:返回文件指针当前位置相对于文件开头的偏移量。例如:
 
FILE *fp;
long int pos;
fp = fopen("test.txt", "r");
fseek(fp, 0, SEEK_END);
pos = ftell(fp);
printf("File size: %ld bytes\n", pos);
fclose(fp);
 
-  rewind 函数:
- 格式: rewind(FILE *stream); 
- 功能:将文件指针重新定位到文件开头。例如:
 
FILE *fp;
char str[100];
fp = fopen("test.txt", "r");
fgets(str, 100, fp);
rewind(fp);
fgets(str, 100, fp); // 重新读取第一行
fclose(fp);
 
 
三、二进制文件读写
 
1. 使用 fwrite 和 fread 函数
-  fwrite 函数:
- 格式: fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream); 
- 功能:将数据以二进制形式写入文件。例如:
 
FILE *fp;
int arr[] = {1, 2, 3, 4, 5};
fp = fopen("test.bin", "wb");
fwrite(arr, sizeof(int), 5, fp);
fclose(fp);
 
 
- 这里 fwrite 将整数数组 arr 以二进制形式写入 test.bin 文件。
-  fread 函数:
- 格式: fread(void *ptr, size_t size, size_t nmemb, FILE *stream); 
- 功能:从文件中读取二进制数据。例如:
 
FILE *fp;
int arr[5];
fp = fopen("test.bin", "rb");
fread(arr, sizeof(int), 5, fp);
for (int i = 0; i < 5; i++) {
    printf("%d ", arr[i]);
}
fclose(fp);
 
 
- 此代码从 test.bin 文件中读取二进制数据并输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值