【发布时间】:2018-05-13 00:51:38
【问题描述】:
大家好,我已经完成了一个程序,可以使用 cmd 将一个字母替换为另一个字母。但是我在尝试替换整个单词时遇到了问题。我是使用文件的新手,所以我尝试使用 fgets 和 fputs,但没有结果。 :/
这是我的代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//Function's prototypes
void atributos(int argc,char *argv[]);
void SustChar(char *argv[]);
//MAIN
int main(int argc, char *argv[]){
FILE *ptrf;
ptrf=fopen(argv[1],"r");
if(ptrf==NULL){
printf("No se pudo abrir el archivo\n");
exit(1);
}
else{
fclose(ptrf);
atributos(argc,argv);
}
return 0;
}
//attributes
void atributos(int argc,char *argv[]){
if(strcmp(argv[2],"S")==0)
SustChar(argv);
}
//Replace words
void SustChar(char *argv[]){
char c[80];
FILE *ptrf;
ptrf=fopen(argv[1],"r");
FILE *ptrs;
ptrs=fopen(argv[5],"w");
while(!feof(ptrf)){
c=fgetc(ptrf);
if(c==*argv[3])
fputc(*argv[4],ptrs);
else
fputc(c,ptrs);
}
fclose(ptrs);
fclose(ptrf);
}
我在 cmd 上使用的 sintaxis 是:.exeName origin.txt S oldword newword avenue.txt
【问题讨论】:
-
请将代码行添加到原始问题中,而不是附上屏幕截图
-
您不检查 fgetc 的 EOF 返回值。也许看到Why is “while ( !feof (file) )” always wrong?。