我想在一个名为func1
的函数中写入一个文件,在main
中读取这个文件,并将该行存储在字符串fname
中。
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include<string.h>
int func(){
FILE *fp=NULL;
if ( ( fp= fopen("file.dat","w+")) == NULL){
printf("Couldn't open file file.dat \n");
exit(-1);
}
fprintf(fp,"%s \n","This is file.dat");
return(0);
}
int main(){
FILE *fp;
char fname[1000]="stringInit";
func();
if ( ( fp= fopen("file.dat","r")) == NULL){
printf("Couldn't open file file.dat \n");
exit(-1);
}
fgets(fname,1000,fp);
printf(" fname = %s \n",fname);
fclose(fp);
return(0);
}
我得到了fname= stringInit
,我猜是因为file.dat
没有被创建,因为它只在main
的末尾被关闭。所以我的问题是:除了在函数func
中使用字符串数组之外,还有其他解决方案吗?
1条答案
按热度按时间olqngx591#
您需要关闭文件:
您也可以传回档案控制代码: