编译时错误在程序中迷路'#'

时间:2014-05-02 19:29:03

标签: c

我需要帮助。我有一个简单的程序,但它在编译时无限循环。

这是代码。

void load_levels(char *path) {
FILE* fp=FOPEN(path,"r");
char* line;
char* buffer;
LEVEL *level;
while(fgets(line,1024,fp)!= EOF) {
fgets(line,1024,fp); 
printf("%s",line);
    }
fclose(fp);

                  }

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您尚未为line分配任何内存。使用char line[1024]。您还应该检查NULL而不是EOF。

答案 1 :(得分:1)

您发布的代码中存在许多错误,但您在问题标题中引用的编译错误原因如下:

您的程序正在解析出现在文件“levels.dat”中的Sokoban级别,如下所示:

    chicago;addie;story begins here;-----#####-----------|-----#@$.#-----------|-----#####-----------

您不小心将此文件作为C源代码文件添加到项目中,并且编译器抱怨第一个#,这是无法解析为C的点。

从项目中删除此文件,此错误将消失。然后,您可以修复编译器将在C代码中突出显示的其他错误。