C 应为标识符或“~”标记之前的“(”
我在做一个项目时遇到了一个问题。我知道有很多类似的问题可以回答,但是关于这个特殊的问题,我找不到任何帮助。我得到了以下错误:C 应为标识符或“~”标记之前的“(”,c,debugging,token,getopt,pagerank,C,Debugging,Token,Getopt,Pagerank,我在做一个项目时遇到了一个问题。我知道有很多类似的问题可以回答,但是关于这个特殊的问题,我找不到任何帮助。我得到了以下错误: Compiling main.c main.c:42:1: error: expected identifier or '(' before '~' token ~ ^ Makefile:47: recipe for target 'obj/main.o' failed make: *** [obj/main.o] Error 1 编辑:我删除了代码的最后几行,但错误仍
Compiling main.c
main.c:42:1: error: expected identifier or '(' before '~' token
~
^
Makefile:47: recipe for target 'obj/main.o' failed
make: *** [obj/main.o] Error 1
编辑:我删除了代码的最后几行,但错误仍然发生在最后一行“}”之后
该项目是关于PageRank算法的,使用控制台中的选项来选择希望使用的算法。我试图读取或使用命令行中的选项,但错误甚至阻止我查看程序的语义
/*
* main.c
*
*Programmierung 2 - Projekt 2 (PageRank)
*/
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>
#include "utils.h" //is existing in the Directory
int main (int argc, char *const *argv) {
//initialize the random number generator
rand_init();
printf("You gave %d command line arguments%c\n", argc-1, argc==1 ? '.' : ':');
int graph;
int i = 1;
char * h = "-h show this help. \n";
char * p = "...";
char * m = "...";
char * r = "...";
char * s = "...";
while ((graph = getopt(argc, argv, "hmprs")) != -1) {
switch (graph) {
default : printf("make -h | -m | -p | -r | -s "); break;
case 'h' : printf("%s %s %s %s %s"), h, m, p, r, s); break;
//this-like outcommended code like the one above
//and again
//and once more
//and a final one
}
printf(" - %s\n", argv[i]);
i++;
}
exit(0);
}
还有一件事:我遇到了一个关于案例“h”长度的问题:printf,所以我在多个字符中对文本进行了编码。
如果您需要有关任何内容的更多信息,请询问我。编译器在第42行报告了一个错误,但您问题中的源代码只有33行,并且不包含~字符。您需要向我们显示您正在编译的整个源代码 但我有一个很好的猜测 错误消息显示在第1列中有一行带有~字符,后面没有任何内容。vi或vim文本编辑器使用~在屏幕上标记不属于文件的行。如果从vi编辑器会话复制并粘贴源文件,很容易复制太多行,并在源文件末尾额外添加~结束
编辑文件,跳转到结尾,然后删除那一行。我现在得到了它。我的编译器vim在我看不见的地方添加了行。我使用了另一个编辑器,可以正确删除不必要的代码。是的,一直以来都是我的错。非常抱歉,这是漫长的一天。在第42行的第一个字母中,等等,你在第42行哪里?你发布的代码只有3行2行。检查此行大小写“h”:printf%s%s%s%s%s,h,m,p,r,s;break;它有额外的括号我重新打开文件,现在有更多的行,我添加了它们。我看到的唯一问题是@aa1992注意到了额外的括号,并且您声明了两次p。但是您的错误看起来不正常。请尝试在新文件或其他文件中再次键入程序我做的,现在它告诉我它在第41行:1@SteamyBanana你在开玩笑,对吗?你自己也写过这段代码吗?只是迭代地应用提议规则。“奥拉夫,我是认真的。我正在试着修一个小时,在我的时区,在半夜我筋疲力尽……按照规则,你是指这段时间吗?”loop?@Olaf我用官方的c参考写下了所有的东西。请告诉我是不是那么琐碎:是什么导致了错误?我还是不知道。去睡觉吧!!问题会在早上出现,在你睡了一个好觉之后…一杯好咖啡…也许是一次轻快的晨游。完成了这一系列疯狂的工作从事专业工作已经32年多了,我可以肯定地说,你必须知道什么时候关掉这台该死的电脑!!毕竟只有1和0。记住!