사용자가 입력 한 문자열을 읽고 파일에 쓰고 싶습니다. 지금 내가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 차이는 없습니다. –