gpt4 book ai didi

c - fgets 编译错误

转载 作者:太空宇宙 更新时间:2023-11-04 05:54:18 25 4
gpt4 key购买 nike

我遇到了初学者的编译错误:

我的简单程序:

#include <stdlib.h>
#include <stdio.h>
#include "Tiles_Circular_Linked_List.h"

#define MAX_LINE_LENGTH 128;

int main(int argc, char **argv) {
struct node *head_tail;
FILE *file;
/*char filename[] = "/home/student/Desktop/Studies/C/testing_fodder/tiles";*/

argv++; /*go to second character-array argument*/

file = fopen(*argv, "r");
char *curr_line;

fgets(curr_line, MAX_LINE_LENGTH, file);

return 0;
}

我尝试使用这个命令编译它:

gcc -g -Wall -ansi launch_tiles.c -o tiles_prog

并得到这些错误:

launch_tiles.c: In function ‘main’:

launch_tiles.c:17:19: error: expected ‘)’ before ‘;’ token

launch_tiles.c:17:19: error: too few arguments to function ‘fgets’ /usr/include/stdio.h:628:14: note: declared here

launch_tiles.c:9:8: warning: variable ‘file’ set but not used [-Wunused-but-set-variable]

launch_tiles.c:8:15: warning: unused variable ‘head_tail’ [-Wunused-variable]

我感兴趣的是错误,而不是警告。

我可以数出传递给 fgets 的三个参数,但不明白我在哪里遗漏了括号,这是什么问题?

谢谢!

最佳答案

改变

#define MAX_LINE_LENGTH 128;

#define MAX_LINE_LENGTH 128

(没有 ;)。容易犯的错误。

C 预处理器执行非常简单的文本替换,因此使用错误定义的宏,您最终会得到

fgets(curr_line, 128;, file);

这显然是一个语法错误。

关于c - fgets 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31173211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com