C 언어로 XML에서 숯을 구문 분석 하시겠습니까?
문제
내 프로그램에 입력으로 전달합니다. "<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
논쟁.
제휴하지 않습니다 StackOverflow