문제

C에 관한 모든 것을 궁금해하면, 당신은 이것을 탈취 할 수 있습니까?

나는 터보를 사용하고있다 c

이 코드가 있습니다

scanf(“%d , %d”,&a,&b);
printf(“%d,%d”,a,b);
scanf(”%c”,&c);
printf(“%d,%d”,a,b);

그런 다음 scanf는 c의 스캔 값을 스캔하지 않습니다

출력은 : 1,2

내가 이것을 사용한다면

scanf(“%d , %d”,&a,&b);
printf(“%d,%d”,a,b);
scanf(”%c ”,&c);//note a blank after %c
printf(“%d,%d”,a,b);

그런 다음 C의 값을 스캔합니다.

출력은 1,2 1,2입니다

동일한 코드

scanf(“%d , %d”,&a,&b);
printf(“%d,%d”,a,b);
scanf(”%1s”,&c);
printf(“%d,%d”,a,b);

이 세그먼트에서 a의 값은 표시되지만 b의 값은 설정됩니다.

출력은 1,2 1,0입니다

두 질문의 답변을 설명해 주시겠습니까?

답을 얻지 못했지만 도와주세요 .......

도움이 되었습니까?

해결책

캐릭터가 스캔되지 않는다는 것을 어떻게 알 수 있습니까? c 첫 번째 경우? 나는 당신이 수신되지 않은 인쇄문을 제공하고 아무것도 보지 않기 때문이라고 생각합니다.

%C 지정자의 동작에주의를 기울이는 사람 페이지를 읽으십시오.


너비 카운트 문자의 시퀀스와 일치합니다 (기본 1); 다음 포인터는 Char에 대한 포인터 여야하며 모든 캐릭터를위한 충분한 공간이 있어야합니다 (종료 NUL이 추가되지 않음). 주요 공백의 일반적인 건너 뛰기가 억제됩니다. 먼저 공백을 건너 뛰려면 형식의 명시 적 공간을 사용하십시오.

강조 추가

입력에 같은 양식이있는 경우 1, 2 a 첫 번째 스캔은 1 , 2 그리고 떠난다 a, 그 시점에서 두 번째 스캔은 우주. 두 번째 예제가 확실하지 않습니다 ~일 것이다 이 경우 작업하십시오.

곧. 세 번째 사건에 대한 돈에 있습니다.

다른 팁

마지막 경우에는 값이 메모리에서 설정되는 곳과 관련이 있습니다.

두번째 scanf 주소에 길이 1을 넣습니다. c - 즉, 하나의 캐릭터, 널 터미네이터가 뒤 따릅니다.

널 터미네이터가 어디로 가는지 맞춰보세요?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top