【发布时间】:2013-06-09 03:03:35
【问题描述】:
我有一个 linux 盒子。
在这个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);
您可能已经猜到了,stdin 包含我需要用 '&' 字符描述的数据。
我希望有人比我猜到的更熟练,输出看起来像:
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 应该消耗它已经读取的 stdin 部分。为什么不这样做?
另外,仅供参考:这是在一个非常便宜、速度慢的服务器上运行的。成交量可能会或可能不会变得非常轻微。因此效率是一个加分项,我愿意,但是有人可能会建议我这样做......
谢谢!
【问题讨论】: