我正在调试 fprintf 的问题。我希望你们能给我一些建议,或者即使这是一个简单的问题,也可以帮助我识别它。我的代码如下。
while(fgets(buffer, 500, filep) != NULL){
//printf("%d\n", i);
strcpy(result, buffer);
result = strtok(result, " ,()[]\'");
//printf("%s\n", buffer);
while(result != NULL){
//printf("%s\n", buffer);
if(stricmp(result, strng) == 0){
//printf("found!!\n");
printf("%s\n", buffer);
fprintf(Compilation, "%s", buffer);
//printf("%s", result);
}
result = strtok (NULL, " ,()[]\'");
}
result = (char*)realloc(result, 500);
}
我知道这很麻烦,甚至可能不是最好的方法,但这是我所拥有的。缓冲区和结果最初分配了 1024 个字节。解析每一行后,如果在该行中找到一个字符串,则将整行附加到一个新文件中。我知道记忆很混乱,所以我仍在努力收紧它。我的问题是 fprintf 将运行多行,并且有时它会碰到一行并使应用程序崩溃。当我在 IDE (VSexpress2012) 中使用 printf 行调试此问题时,我看到 printf 在 fprintf 停止打印到文件后实际上打印了许多行。任何帮助将不胜感激。