编写一个C程序,从包含多行文本的文本文件中读取数据(使用记事本创建,假设每行的最大长度为100个字符),并将偶数行文本写入一个文件中,并将奇数行文本写入另一个文件。(提示:使用fgets()和fputs())
时间: 2024-05-05 10:16:01 浏览: 26
```c
#include <stdio.h>
int main() {
FILE *fp, *even_fp, *odd_fp;
char filename[100], even_filename[100], odd_filename[100];
char buffer[101];
int line_num = 0;
// 输入文件名
printf("请输入文件名:");
scanf("%s", filename);
// 打开文件
fp = fopen(filename, "r");
if (fp == NULL) {
printf("文件打开失败!\n");
return 1;
}
// 创建偶数行文件
sprintf(even_filename, "%s.even", filename);
even_fp = fopen(even_filename, "w");
if (even_fp == NULL) {
printf("偶数行文件创建失败!\n");
return 1;
}
// 创建奇数行文件
sprintf(odd_filename, "%s.odd", filename);
odd_fp = fopen(odd_filename, "w");
if (odd_fp == NULL) {
printf("奇数行文件创建失败!\n");
return 1;
}
// 逐行读取文件并写入相应的文件
while (fgets(buffer, 101, fp)) {
line_num++;
if (line_num % 2 == 0) {
fputs(buffer, even_fp);
} else {
fputs(buffer, odd_fp);
}
}
// 关闭文件
fclose(fp);
fclose(even_fp);
fclose(odd_fp);
printf("已将偶数行文本写入文件:%s\n", even_filename);
printf("已将奇数行文本写入文件:%s\n", odd_filename);
return 0;
}
```