ユーザーからの文字列入力を読み込んでファイルに書きたいと思っています。今、私はC - ユーザー入力を動的文字配列に格納していますか?
char name[25];
scanf("%s", name);
int handle = open("./visitors.txt", O_RDWR|O_CREAT, S_IRUSR|S_IWUSR);
if (handle < 0){
printf("File error.\n");
return;
}
lseek(handle, -sizeof(name), SEEK_END);
write(handle, name, sizeof(name));
これをやっている、もちろん、ほとんどの時間は、ユーザが25文字、唯一のあまりの書き込みがないので、右ではないので、ときユーザ入力5つの文字、他の20の意志空でなければなりません。私はユーザーが入れた5文字と出力ファイルに20文字のばかげた文字を持つことになります。ユーザー入力のみがファイルに書き込まれていることを確認するにはどうすればよいですか?
'scanf'のマニュアルを読んでいますか? '%s'は出力をヌル終了させます。 –
'-sizeof(name)'は ' - (off_t)sizeof(name)'でなければなりません。 –
@ M.M違いはありません。 –