在C中写入文件的问题

时间:2011-04-09 20:03:08

标签: c io

我正在尝试将一些信息写入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打印到文件时发生崩溃,但是如果我取出该打印件,则在打印最后一个语句时会崩溃。第一个似乎打印很好,但是..

当我打印错误时,我收到“打开文件过多”

2 个答案:

答案 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);
}

看看会发生什么。