用c语言使用指针实现字符传送,从zifu.txt文件中读取任意长度的字符,要求每3个字符中存放一个星号,输出并存入"jieguo.txt"文件。例如:abcdefg, 输出 abc*def*g
时间: 2024-03-26 16:35:52 浏览: 55
使用c语言实现文件传输
好的,我会尽力回答你的问题。
以下是使用指针实现字符传送的C语言代码,可以实现从zifu.txt中读取任意长度的字符,每3个字符中存放一个星号,输出并存入"jieguo.txt"文件。
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_LEN 1000
int main() {
char str[MAX_LEN+1];
char *p = str;
int count = 0;
FILE *fp_in = fopen("zifu.txt", "r");
if (fp_in == NULL) {
printf("Failed to open zifu.txt\n");
return 1;
}
FILE *fp_out = fopen("jieguo.txt", "w");
if (fp_out == NULL) {
printf("Failed to open jieguo.txt\n");
fclose(fp_in);
return 1;
}
while (fgets(str, MAX_LEN, fp_in) != NULL) {
while (*p != '\0') {
if (count % 3 == 2) {
fputc('*', fp_out);
}
fputc(*p, fp_out);
p++;
count++;
}
}
fclose(fp_in);
fclose(fp_out);
return 0;
}
```
解释一下代码:
1. 定义了一个字符数组`str`,和一个指向`str`开头的指针`p`,以及计数器`count`,用来记录当前读取到的字符数。
2. 打开输入文件`zifu.txt`和输出文件`jieguo.txt`,如果打开文件失败,输出错误信息并退出程序。
3. 使用`fgets`函数从输入文件中读取一行字符,存入`str`中。
4. 使用指针`p`遍历`str`数组中的每一个字符,判断是否需要在该字符后面添加一个星号,如果需要,则将星号写入输出文件中;然后将该字符写入输出文件中,计数器`count`加1。
5. 重复步骤3和4,直到读取完整个输入文件。
6. 关闭输入文件和输出文件,结束程序。
希望这个代码能够对你有所帮助,如果有任何疑问,欢迎随时向我提问。
阅读全文