我正在尝试将一些信息写入C中的文件,之前从未遇到问题。但是,现在在将变量的内容写入文件时似乎会中断。这就是我所拥有的。
int i, count = 0;
FILE *f;
int _x, _y, _z, _x2, _y2, _z2;
for (i = 0; i < HEIGHT * WIDTH*3; i+= 3)
{
if (buffer1[i/3] < MAGIC_VALUE)
{
count++;
}
if (buffer2[i/3] < MAGIC_VALUE)
{
count++;
}
}
printf("Count = %d\n", count); // prints correctly...
f = fopen("file.abc", "w");
fprintf(f, "lots\n of\n text\n");
fprintf(f, "count: %d\ntext \ntext y\ntext text text", count); // crashes here
fprintf(f, "\nend");
fclose(f);
为什么这条线会崩溃?它最终出现在dbghook.c的_debugger_hook_dummy = 0;
将count
打印到文件时发生崩溃,但是如果我取出该打印件,则在打印最后一个语句时会崩溃。第一个似乎打印很好,但是..
当我打印错误时,我收到“打开文件过多”
答案 0 :(得分:1)
第1步:替换
f = fopen( path, mode );
带
f = fopen( path, mode ); if( f == NULL ) { perror( path ); exit( EXIT_FAILURE ); }
答案 1 :(得分:0)
至于MSVS2008,一切正常。当然,'for'循环因为使用了全局变量而定义了。
首先,你应该尝试做类似
的事情#include <iostream>
void main()
{
int count = 0;
FILE *f;
f = fopen("file.abc", "w");
fprintf(f, "count: %d\n", count);
fclose(f);
}
看看会发生什么。