c – 文件读写到同一个文件?

c – 文件读写到同一个文件?,第1张

概述我已经设法打开一个文件并在使用var = fopen(文件,“r”)/“w”写入另一个文件时读取,但即使使用r或w模式,我也无法打开文件并更改其内容. 想象一下: int formatacao (char original[]){/*se a cadeia nao tiver escrita em maiusculas, esta funçao vai alteralas para tal*/ 我已经设法打开一个文件并在使用var = fopen(文件,“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);}

完美!如何打开文件,通过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 – 文件读写到同一个文件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1255901.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存