
想象一下:
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);} 完美!如何打开文件,通过char读取char并确定是否要更改char?
解决方法 除非在输入中找到EOF,否则您需要在输出和输入之间插入文件定位功能.这对我有用:
#include <stdio.h>int formatacao (char *original) { int val1; file *original_open; int write_at,read_at; original_open = fopen(original,"r+"); if (original_open == 0) { printf("ficheiro %s\n",original); } write_at = read_at = 0; while ((val1 = fgetc(original_open)) != EOF) { read_at = ftell(original_open); fseek(original_open,write_at,SEEK_SET); if (('a' <= val1) && (val1 <= 'z')) { fputc(val1 - 32,original_open); } else { fputc(val1,original_open); } write_at = ftell(original_open); fseek(original_open,read_at,SEEK_SET); } fclose(original_open); return (0);}int main(voID) { formatacao("5787867.txt"); return 0;} 总结 以上是内存溢出为你收集整理的c – 文件读写到同一个文件?全部内容,希望文章能够帮你解决c – 文件读写到同一个文件?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)