我有以下代码:
int checkCorrectness(int i,char *iStr)
{
if(atoi(iStr) == i)
return 1;
return 0;
}
void foo(int i)
{
printf("inside foo %d\n",i);
}
void print()
{
char mystring[100];
freopen("myfile.txt","w+",stdout);
for(int i =0;i < 100;++i)
{
foo(i);
FILE *f = fopen("myfile.txt","r");
if (f == NULL) perror ("Error opening file");
else {
while ( fgets (mystring , 100 , f) != NULL );
if(!checkCorrectness(i,mystring);
break;
fclose (f);
}
}
fclose(stdout);
}
此代码是否保存?我的意思是在调用freopen并且其流未关闭后调用fopen是否可以?谢谢
答案 0 :(得分:0)
您的代码看起来很安全。您可以在一个过程中多次打开同一个文件。文件描述符不会相互影响。
我会像你一样远离重新开启标准。你可以用一个fopen完成整个程序,避免你正在创建的混乱:查找fprintf!