정수를 출력하는 방법은 무엇입니까? 내가 사용할 때 :c로 printf를 사용하여 정수를 출력하는 방법
int n = GetInt();
printf("%n \n", n);
사용하지 않은 변수가 있으며 컴파일 할 수 없다는 오류가 발생합니다.
정수를 출력하는 방법은 무엇입니까? 내가 사용할 때 :c로 printf를 사용하여 정수를 출력하는 방법
int n = GetInt();
printf("%n \n", n);
사용하지 않은 변수가 있으며 컴파일 할 수 없다는 오류가 발생합니다.
다른 답변이 표시된대로 보통 int
을 %d
변환 지정 또는 %i
변환 지정으로 인쇄합니다. %o
, %x
또는 %X
(및 %u
)을 사용할 수도 있지만 기술적으로는 서명 된 서명되지 않은 변환이 포함됩니다.
%n
은 printf()
등의 유효한 변환 지정입니다. 그러나 다른 모든 변환 지정과 달리 %n
변환 지정은 int
에 대한 포인터를 사용하는 출력 작업이며 형식 문자열에서 해당 지점까지 몇자를 썼는지 확인하는 데 사용됩니다. 따라서 다음을 사용할 수 있습니다 :
int n = GetInt();
int c;
printf("%d%n\n", n, &c);
printf("%d characters in number %d\n", c, n);
줄 바꿈 전에는 거의 공간이 필요하지 않습니다.
TR24731-1 (또는 ISO/IEC 9899 : K는 바운드 인터페이스 확인 2011 부속서) 종종 정확하게 문제를 초래하기 때문에 그 출력 매개 변수는 입력보다는 때문에 명시 등 printf_s()
를 정의하고,이 %n
변환 사양을 불법으로 매개 변수.
전달한 정수에 해당하는 형식 지정자를 사용해야하기 때문입니다. 가장 일반적인 것은 %d
입니다. %n
을 %d
으로 바꾸어보세요.
왜 사람들은 설명없이 downvoting을 계속합니까? 너무 짜증나. – Antimony
는 정수가 %d
(또는 %i
)를 사용하여 서명.
수정 자 전체 목록은 man 3 printf
(유닉스 계열 시스템에서)을 참조하십시오.
이 기능이 인터넷 어디에서나 문서화되어 있는지 궁금합니다 ... 아니, 그렇지 않을 수도 있습니다. –
호기심에서 벗어나 왜 "% n"이 (가) 작동하기를 기대 했습니까? 팁 : 라이브러리 함수에 대한 호출을 작성하는 경우, 자신이하는 일을 확실하게 확신하지 않는 한 항상 * 해당 함수에 대한 설명서를 읽으십시오. (그리고'\ n '앞의 공백은 아마도 불필요 할 것입니다.) –
@KeithThompson : 저는 변수의 이름 ... 또는 추측과 연관이 있다고 추측합니다. 그리고 OP는 " 번호". 나도 몰라 ... –