C语言fgets函数问题,求解。

#include <stdio.h>#include <stdlib.h>#include <string.h>int main(void){ char str[256]={NULL}; int n=0; char *filename_1="c:\\a.txt"; \\文件位置 char *filename_2="c:\\b.txt"; FILE *pfile_1=NULL; FILE *pfile_2=NULL; if(!(pfile_1=fopen(filename_1,"a"))) \\打开文件,没有就新建 { printf("error"); exit(1); } fgets(str,256,pfile_1); \\问题就是在这里,str并没有数据写入。 printf("%s",str); fclose(pfile_1); \\关闭文件 if(!(pfile_2=fopen(filename_2,"a"))) { printf("error"); exit(1); } n=strlen(str); for(int i=0;i<n;i++) fputc(str[i],pfile_2); fclose(pfile_2); return 0;}

#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { char str[256]={NULL}; int n=0; char *filename_1="c:\\a.txt"; //文件位置 char *filename_2="c:\\b.txt"; FILE *pfile_1=NULL; FILE *pfile_2=NULL; // a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留) // a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留) // 此处改为 a+ 就可以读文件内容了 if(!(pfile_1=fopen(filename_1,"a+"))) //打开文件,没有就新建 { printf("error"); exit(1); } fgets(str,256,pfile_1); //问题就是在这里,str并没有数据写入。 printf("%s",str); fclose(pfile_1); //关闭文件 if(!(pfile_2=fopen(filename_2,"a"))) { printf("error"); exit(1); } n=strlen(str); for(int i=0;i<n;i++) fputc(str[i],pfile_2); fclose(pfile_2); return 0; }
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-07-22
fopen(filename_1,"a") a方式打开的文件表示追加到文件末尾 你这里是读取文件啊,从末尾读当然没有数据了 用r就可以了
相似回答