다음은 나에게 문제를 일으키는 코드의 조각입니다 :개미는 fgets() 후에 버퍼에 남아 있습니까?
#define MAX_NAME_LEN 64
char choice;
char name[MAX_NAME_LEN];
printf("Name: ");
fgets(name, MAX_NAME_LEN, stdin);
choice = getchar();
나는 이름을 입력하고 Enter 키를 누릅니다 후, getchar가() 다음 문자를 기다리는 대신뿐만 아니라 줄 바꿈을 캡처합니다. getchar()이 이름을 입력 한 후 예상대로 문자를 기다릴 수 있도록 가능한 한 다른 getchar()과 같은 해킹이없는 코드를 수정하려면 어떻게해야합니까?
'MAX_NAME_LEN'에 하나를 추가하면 안됩니다.'fgets()'는'n-1' 문자 만 읽고 종료 NUL은 하나 남겨 둡니다. – Alnitak
아, 맞습니다. 수정 해줘서 고마워. – linkmaster03