개행이 발생할 때까지 문자를 읽으려면 C로 함수를 작성하고 싶습니다.C : scanf와 getchar의 동작 차이점
코드 사용 scanf와 : while(scanf("%c",&x)!=EOF&&x!='\n'){....}
코드 사용 getchar가 : while(((x=getchar())!=EOF)&&x!='\n'){....}
INT의 x는 함수 내에서 선언 된 지역 변수이다 나는 scanf와와 getchar가를 사용하여 다음 코드를 썼다. 두 번째 코드는 단어 (EG : "ADAM \ n")를 읽은 후 중지되지만 scanf 코드는 루프를 중단하지 않고 대기 상태를 유지합니다.
나중에 scanf 이후에 x 값은 (2^7-1) * (2^8) + 문자 읽기의 ASCII 값 (= 32522 개행)이며 문자 상수 \ n은 10임을 알 수 있습니다. 비교가 실패했습니다.
제 질문은 getchar가 '\ n'을 읽은 후 x 값을 32000 이상으로 지정하는 반면 getchar은 값 10 (문자 상수 '\ n'과 일치 함)을 할당하는 이유입니다. 모든 "공간"문자를 정수를 읽고 무시 예를 scanf("%d",&num)
를 들어, (뿐만 아니라 char
) 다른 데이터 유형을 읽는 데 사용되는
1) 일반적으로 scanf
에 : 여기
'scanf ("% c", & x) == EOF'는 심각한가요? –
죄송합니다. 그건 실수 였어. 나는 그 라인 @SouravGhosh을 수정했다 – user3763284
무엇으로 수정 되었는가? scanf()의 반환 값은 중요합니다. –