scanf
을 두 번 사용하여 문자열을 스캔 한 다음 char을 스캔했습니다. 문자열을 먼저 검색하고 두 번째 문자는 실행하지 않습니다 scanf
. 내가 %s
과 %c
을 하나만 사용하면 scanf
이 완벽하게 작동합니다. 왜 이런 일이 일어 났는지 말해 줄 수 있어요?문자열 스캔을 위해 scanf를 두 번 사용할 수없고 문자를 스캔하지 못했습니다.
#include<stdio.h>
int main()
{
char s[100],ch;
scanf("%s %c",s,&ch); //this works!
printf("%s %c",s,ch);
return 0;
}
에 의해 촬영되고 읽은 후 개행 문자가있다 "작동하지 않습니다"무슨 일이 일어나고있는 우리에게 설명하지 않습니다. 당신은 무엇을 기대 했습니까? 실제로 무슨 일이 있었습니까? 문제를 이해하고 시도하기 위해 무엇을 했습니까? 프로그램과 함께 디버거를 사용할 때 어떤 일이 발생 했습니까? – AdrianHHH
첫 번째 옵션에서는 두 번째'scanf '바로 다음에 중단 점을 넣고'ch' 값을 확인하십시오. 대부분 첫 번째'scanf'에서 개행 문자입니다. 코드를 디버깅하는 방법을 배우지 않아도 나중에 도움이 될 것입니다. –
참고 : 알몸''% s "'을 사용하지 마십시오. 여기서 "% 99s"를 사용하는 것이 더 좋습니다. – chux