현재 한 파일의 텍스트를 다른 파일에 복사하거나 추가하는 프로그램을 작성하고 있습니다. 내 문제는 사용자가 파일을 덮어 쓰거나 추가 할 것인지 묻는 메시지가 나타나면 scanf() 및 getchar()을 건너 뛰고 두 번 건너 뛰는 경우 발생합니다. fflush (stdin)와 함께 getchar() 및 scanf()를 여러 가지 조합으로 사용하고 내가 연 파일이 모두 닫혔는지 확인했지만 여전히 선택 항목을 입력 할 수 없습니다.getchar() 및 scanf()가 C에서 건너 뛰었습니다.
첫 번째 프롬프트를 포함하는 특정 부분은 여기에 있습니다. I)이 (getchar가 사용되는 경우
`/****************PROMPT FOR OVERWRITE****************/
printf("Would you like to overwrite the Destination File?\n");
printf("1=NO,2=YES=");
scanf("%d", &overwriteAnswer);
if(overwriteAnswer == 2)
{
`
이 scanf와() 또는, 단지 스킵되고 보통 다른 음수로 코드가 실행될 때마다 채워진다.
전체 코드는
if((infile = open(argv[1], O_RDONLY)) == 0)
{
/****************INPUT FILE OPENED****************/
printf("%s open\n",argv[1]);
if ((outfile = access(argv[1], F_OK)) == 0)
{
/****************PROMPT FOR OVERWRITE****************/
printf("Would you like to overwrite the Destination File?\n");
printf("1=NO,2=YES=");
scanf("%d", &overwriteAnswer);
if(overwriteAnswer == 2)
{
printf("Overwriting Destination File\n");
}
어떤 도움이나 조언이 크게 감사합니다 다음과 같습니다. 당신이 그렇게 FFLUSH 사용하지 않는 이유
나는 실제로이 모든 것을 읽었으며 그들이 말하는 것을 구현하려고 시도했다. 불행히도 그것은 ' 나는 전혀 도움이되지 못했다. – user3006826
불행히도 여전히 scanf()를 건너 뛰었습니다. – user3006826
아니요. 실행은 ./a.out [sourcefile] [destinationfile]입니다. – user3006826