yyin = fopen("input_file.txt","r");
while ((nread = fread(buf, 1, sizeof buf, yyin)) > 0){
fwrite(buf, 1, nread, stdout);
}
fclose(yyin);
yyin = fopen("input_file.txt","r");
yyparse();
fclose(yyin);
如您所见,我多次打开同一个文件。首先,我想在我的cmd / terminal中打印输出;然后我想启动解析器。问题很明显:每个打开过程都会花费资源,但是fread和fwrite的组合似乎“清理”了我的输入文件,因此yyparse没有得到任何进一步的输入并且基本上保持空白。
您是否知道如何在不打开2个文件的情况下使其更加高效或顺畅?