먼저 char []를 선언하면 sscanf 함수에서 읽지 않습니다.C 선언 순서 오류
char rd[4];
char rs[4];
char rt[4];
sscanf(line, "or $%[^,], $%[^,], $%s", rd, rs, rt);
printf("RD: %s, RS: %s, RT: %s\n", rd, rs, rt);
예를 들어, 먼저 rd를 넣고 rd는 읽지 않습니다. 나는 rs를 먼저 넣었고 읽혀지지 않았다.
이것은 내가 읽고있다 문자열은 다음과 같습니다 "또는 $ A0, $의 T4, $ 제로"
사람이 이것을 설명 할 수 있습니까?
''zero ''문자열이'char [4]'에 들어 가지 않아서,'char [5]'가 필요합니다. 0 종결자는 분명히 여기서'rd'의 첫 번째 바이트에 저장됩니다. –
그냥'sscanf'에게 no라고 말하십시오; [this] (http://stackoverflow.com/questions/2430303/disadvantages-of-scanf)와 같은 수많은 참고 자료. –