저는 C 프로그래밍의 초보자이고 지금 scanf
을 배우고 있습니다.scanf()를 사용하여 코드를 설명하는 방법은 무엇입니까?
일부 코드를 작성했으며이를 이해하려고합니다.
#include <studio.h>
int main(){
int a=1, b=2, c=3;
scanf ("%d%d", &a,&b);
scanf ("%d", &c);
scanf ("%d", &c);
printf ("a=%d\nb=%d\nc=%d\n", a, b, c);
return 0;
}
When I input
11 22 33 44
The output is
a=11
b=22
c=44
이 정상입니다 : 여기
는 코드입니다. 그러나 입력 할 때 :11, 22, 33, 44
Output
a=11
b=2
c=3
쉼표가 입력 프로세스를 중지하는 것처럼 보입니다.
왜 이런 일이 일어 났는지 설명 할 수 있습니까? %d%d
사이에 쉼표를 넣어 때
사실, (그것은 "%d, %d"
같다), 및 입력 데이터 입력이 쉼표로 구분해야합니다. 제공
scanf
매개 변수 나에게 쉼표를위한 몇 가지 제안을 줄 수
'scanf'는 당신이 지정한 입력을 해석하려고 시도합니다. 그것은 첫 번째'% d '에 대해서는 정상적으로 작동합니다. 이것은 분명히 11입니다. 그러면','을 읽고이를 정수로 변환하려고합니다. 이는 작동하지 않습니다. 따라서 실패하고 값은 이전과 동일합니다 ('b = 2'). 다음 'scanf'는 동일하게 시도하고 다시 실패하므로 'c = 3'을 갖습니다. 값을','로 구분하지 마십시오. 그러면 괜찮을 것입니다. – SgtDroelf
'scanf()'의 동작 방식을 추측하기보다는 사용중인 텍스트에서 문서 나 설명을 읽는 것이 어떻습니까? 아니면 강사에게 물어 보시겠습니까? 우리는 귀하가 여기에서 도움을 요청하기 전에 스스로 해결책을 찾기 위해 합당한 노력을 기울일 것을 기대합니다. –
답장을 보내 주셔서 감사합니다. 나 혼자서 C를 배울 때 어떤 강사도 나를 도울 수 없다. – user7241487