我的strtok
工作正常,但现在因为我使用scanf
结束字符串NULL
char我的程序只从重定向标准中获取一行。例如。
scanf("%s" , input);
token = strtok (input, ", \n");
while(token != NULL){
i += (strtol(token,0,0));
token = strtok(NULL, ", \n");
}
所以我正在尝试使用函数来检查程序是否仅达到NULL
的{{1}}(根据我的理解EOF
= -1 EOF
= 0)但我无法让指针和函数在我的代码中工作。附:我知道这是糟糕的代码,但现在已经很晚了,我还在继续努力,而我还在等待建议指出我错过的明显错误。
NULL
是否有一种我不了解的更简单的方法,或者我是否朝着正确的方向前进并且有很多错误?
谢谢,Lachlan
答案 0 :(得分:0)
来自man scanf
:
The value EOF is returned if the end of input is reached...
您只需要检查scanf
的返回值,而不是strtok
。类似的东西:
while(scanf("%s", input) != EOF)
//just do it
答案 1 :(得分:-1)
检查您的scanf格式。
你错过了地址运营商'&'