我有一台Linux机器。读标准输入以块...(可能与scanf函数?)
在此Linux中,有一个项目。
在这个程序中,我有这样一个循环:
int num=*"what num needs to be"*;
char proc[num];
int result;
while (1) {
result=scanf("%[^'&']%s",proc);
printf("And proc is: %s\n",proc);
printf("Result counter was: %i\n",result)
if (result == 0) break;
}
scanf("%[^'&'],%s",proc)
printf("post lop result is: %s", proc);
正如你可能已经猜到了,标准输入包含我需要的“&”字符划定的数据。
正如我希望有人更熟练比我已经猜到了,输出看起来是这样的:
And proc is: *first delineated section*
Result counter was: 1
And proc is: *first delineated section*
Result counter was: 0
post loop result is: *first delineated section*
我认为scanf函数应该消耗标准输入它已经读的一部分。为什么不这样做?
此外,供参考:这是被一个很便宜的,慢的服务器上运行。体积可能会或可能不会超过轻微。效率是这样一个加号,我接受但有人可能会认为我这样做....
谢谢!
“scanf()”的格式指定它应该分配给两个参数,但只传递一个参数。这是从提问者的原始代码传播出来的错误。 – jxh
@jxh:谢谢;我应该编写代码 - drat! –
谢谢,这确实清除了它! – user1833028