c语言:从zifu.txt文件中读取任意长度的字符,要求每3个字符中存放一个星号,输出并存入"jieguo.txt"
时间: 2023-06-25 13:02:00 浏览: 37
以下是可以实现上述要求的C语言程序:
```c
#include <stdio.h>
#define MAX_LEN 1000 // 假设输入的文本最长为1000个字符
int main()
{
FILE *in_fp, *out_fp;
char input_file[] = "zifu.txt";
char output_file[] = "jieguo.txt";
char buffer[MAX_LEN];
int i, j;
// 打开输入文件和输出文件
in_fp = fopen(input_file, "r");
out_fp = fopen(output_file, "w");
// 读取输入文件中的所有字符到缓冲区中
fgets(buffer, MAX_LEN, in_fp);
// 遍历缓冲区,每3个字符中插入一个星号,输出到屏幕并存储到输出文件中
for (i = 0; buffer[i] != '\0'; i += 3) {
for (j = 0; j < 3 && buffer[i+j] != '\0'; j++) {
fputc(buffer[i+j], stdout); // 输出到屏幕
fputc(buffer[i+j], out_fp); // 存储到输出文件
}
fputc('*', stdout); // 输出星号到屏幕
fputc('*', out_fp); // 存储星号到输出文件
}
// 关闭输入文件和输出文件
fclose(in_fp);
fclose(out_fp);
return 0;
}
```
在上面的程序中,我们首先定义了输入文件名和输出文件名以及缓冲区的长度。然后打开输入文件和输出文件,读取输入文件中的所有字符到缓冲区中。接着遍历缓冲区,每3个字符中插入一个星号,同时输出到屏幕和存储到输出文件中。最后关闭输入文件和输出文件。