我遇到了一个初学者的编译错误:
我的简单程序:
#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的三个参数,但我不知道我在哪里漏掉了括号,那么问题是什么?
谢谢
改变
#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