fprintfについて
Posted: 2007年9月26日(水) 22:26
#include <stdio.h>
int main (void) {
int i, status, value, value2;
for(i = 0; i < 10; i++) {
fprintf(stderr, "値1 >>> "); //エラー出力
status = scanf(" %d", &value); //値1に入力する.
if(EOF == status) break;
fprintf(stderr, "値2 >>> "); //エラー出力
status = scanf(" %d", &value2);//値2に入力する.
if(EOF == status) break;
fprintf(stderr, "和・差・積\n");
printf("%2d %2d %2d", value + value2, value - value2, value * value2); //和.差.積.
}
return 0;
}
printf("%2d %2d %2d", value + value2, value - value2, value * value2);においてCygwin上で表示すると値1 >>> 3
値2 >>> 4
和・差・積
値1 >>> 7 -1 12
となり
printf("%2d %2d %2d\n", value + value2, value - value2, value * value2);だと
値1 >>> 3
値2 >>> 4
和・差・積
7 -1 12
値1 >>>
となります。こちらが求めているほうです。
気になるのは前者のほうで、なぜfor文のアタマの値1 >>>が先に出力されでから7 -1 12となるのでしょうか?