システムコール(read
とwrite
)を使用して入出力を行うCプログラムを作成しようとしています。しかし、私もsscanf
を使って変換したい。プログラムは開始値と終了値を入力し、その終了値にカウントします。私はsscanf
を使用して変換しようとしています。CシステムコールI/Oとsscanfの実行
int main(int argc, char **argv){
char beg[5];
char stop[5];
int i, start, end;
write(1, "Starting value: ", 16);
read(0, beg, 4);
sscanf(beg,"%d",&start);
write(1, "Ending value: ", 14);
read(0, stop, 4);
sscanf(stop,"%d",&end);
int dif = end - start;
if (dif >= 0){
for (i = start; i <= end; i++){
write(1, &i, sizeof(i));
}
write(1, "\n", 1);
}
return 0;
}
所望の出力:しかし
Starting value: 1
Ending value: 4
1 2 3 4
、countに何も印刷(私はprintf("%d ", i);
を使用した場合、それは動作します)
'read(0、beg、4);' begはNULで終了しません。 [あなたの入力を拾い読み] – wildplasser