Мне удалось открыть файл и прочитать при записи в другой файл с помощью var=fopen(file,"r")
/ "w"
, но даже при использовании r + или w + я не могу открыть файл и изменить его содержимое.
Представьте себе это:
int formatacao (char original[]){/*se a cadeia nao tiver escrita em maiusculas, esta funçao vai alteralas para tal*/
int val1;
FILE * original_open;
original_open = fopen (original,"r+");
if (original_open==0){
printf ("ficheiro %c 1.",original);
}
while ((val1=fgetc(original_open))!=EOF){
if (val1>='a'&&val1<='z'&&val1){
fputc(val1-32,original_open);
}
else
fputc(val1,original_open);
}
fclose (original_open);
return (0);
}
Код работает, без ошибок, без предупреждения, единственная проблема: он стирает содержимое файла, если я использую его следующим образом, НО это работает:
int main (){
int val1,val2,nr=0;
FILE* fp1;
FILE* fp2;
fp1=fopen ("DNAexample.txt","r");
fp2=fopen ("DNAexample1.txt","w");
if (fp1==0){
printf ("EPIC FAIL no 1.\n");
}
while ((val1=fgetc(fp1))!=EOF){
if (val1>='a'&&val1<='z'&&val1){
fputc(val1-32,fp2);
}
else
fputc(val1,fp2);
}
fclose (fp1);
fclose (fp2);
return (0);
}
Безупречно! Как я могу открыть файл, прочитать символ за символом и решить, хочу ли я изменить символ или нет?