私は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 の一部を消費することになっていると思いました。なぜこれをしないのですか?
また、参考までに、これは非常に安価で遅いサーバーで実行されています。ボリュームがわずかになる場合とそうでない場合があります。したがって、効率はプラスです。私はオープンですが、誰かが私にこれを提案するかもしれません....
ありがとう!