2017-03-04 11 views
1

나는이 코드 줄이 오류의 원인이 무엇인지 확실하지 않다오류 : 예상 표현 토큰 '%'이전

printf(%d=12 * %d + %d "\n", a, &b, &c); } 

" '%'토큰 전에 식을 예상"오류 상태지만 난 문자열 표현 또는 "%"의 참조가 너무 명확하지 않습니다.

+0

그냥 SO에 게시 할 때 코드가 잘못되었음을 알 수 있습니다. 형식 문자열은 바이 컬러입니다. –

답변

0

큰 따옴표가 잘못 배치되었습니다. ( 이후의 첫 번째 문자는 "이 아니기 때문에 형식 문자열이 없습니다. %입니다.

printf("%d=12 * %d + %d\n", a, b, c); 

BLUPIXY가 올바르게 지적한 것처럼, 당신은 또한 인쇄 주소 &b, %d와 정수로 &c을 피해야한다. 당신이 정말로 주소를 인쇄 할 경우, PTR - 투 - 무효, 즉이 함께 %p을 사용해야합니다

printf("%d=12 * %p + %p\n", a, (void *)&b, (void *)&c); 

A, B와 C에 대한 선언을 참조하는 것이 도움이 될 것입니다.

+2

어쩌면'&' – BLUEPIXY

+1

'% d'은 포인터가 아니라'int'가 필요합니다 (포인터가 있다면, UB, 맞습니까?). – BLUEPIXY

+1

무엇이든지,하지만이 질문에 대답 할 자격이 있는지 모르겠습니다. 그것은 단지 오타입니다. –