当前位置: 首页 > 知识库问答 >
问题:

Fgets编译错误

艾骏喆
2023-03-14

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

我的简单程序:

#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_瓷砖。c-o tiles\u程序

并得到这些错误:

启动_tiles。c: 在函数“main”中:

launch_tiles. c: 17:19:错误:预期')'之前';'令牌

launch_tiles. c: 17:19:错误:太少的参数函数'fget' /usr/include/stdio.h: 628:14:注意:在这里声明

launch_tiles. c: 9:8:警告:变量'file'已设置但未使用[-Wunused-但-设置-变量]

启动_tiles。c: 8:15:警告:未使用的变量“head\u tail”[-未使用的变量]

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

我可以数到传递给fgets的三个参数,但我不知道我在哪里漏掉了括号,那么问题是什么?

谢谢

共有1个答案

怀德馨
2023-03-14

改变

#define MAX_LINE_LENGTH 128;

#define MAX_LINE_LENGTH 128

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

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

fgets(curr_line, 128;, file);

这显然是一个语法错误。

 类似资料:
  • fgets(由文件中读取一字符串) 相关函数 open,fread,fscanf,getc 表头文件 include<stdio.h> 定义函数 har * fgets(char * s,int size,FILE * stream); 函数说明 fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会

  • fgets 由文件中读取一字符串 相关函数 open,fread,fscanf,getc 表头文件 include<stdio.h> 定义函数 char *fgets(char *s, int size, FILE *stream); 函数说明 fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后

  • 问题内容: 当我在Netbeans中构建并运行程序时,它可以正常工作。但是当我尝试“ mvn compile”时,使用相同的pom.xml文件会出现以下错误: 我的Java版本不是1.3,这里是“ mvn -version”的结果 这是第53行: 问题答案: 问题是在Maven2中默认使用和 您可以通过将其添加到pom中来解决此问题: 将其放在最顶层的父pom中是很实际的,这样您派生的pom不需要

  • 当我退出我的应用程序时,这个folloeing错误已经产生。

  • 我是Scala和SBT的新手,所以我可能会遗漏一些明显的东西。 我试图编译http://www.scalafx.org/docs/quickstart/上的HelloWorld示例

  • 编译模块com。实例我的包裹。GWT。HelloGWT [INFO]验证新编译的单元 [INFO]在第一次过程中忽略了1个单元,其中包含编译错误 [INFO]编译时将-strict或-logLevel设置为TRACE或DEBUG以查看所有错误 [INFO]在文件:/home/ilsurih/Projects/maven hibernate/src/main/java/com/example/myP