문제

내 프로그램에 입력으로 전달합니다. "<param value=s/>"

이 코드를 사용합니다.

char character[1];
sscanf(data, "<param value=%c/>", &character);
printf("%c", character);

그러나 출력은 "S"char 대신 "S/>"인 것 같습니다. 여기서 뭐가 잘못 됐어?

도움이 되었습니까?

해결책

코드는 정확하지만 출력이 필요합니다. character[0]:

printf("%c", character[0]);

주소 연산자를 앞에 떨어 뜨려야합니다 character, 그러나 AS sscanf() 유형의 주장을 기대합니다 char * 그리고 아닙니다 char (*)[1]:

sscanf(data, "<param value=%c/>", character);

다른 팁

char character[1] 대체 될 수 있습니다 char character, 동시에 버그를 수정합니다.

당신이 유지하고 싶다면 character 배열로 사용해야합니다 &character[0] 또는 character ~처럼 sscanf 논쟁, 그리고 character[0] ~처럼 printf 논쟁.

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