2012-08-06 4 views
-3

정수를 출력하는 방법은 무엇입니까? 내가 사용할 때 :c로 printf를 사용하여 정수를 출력하는 방법

int n = GetInt(); 

printf("%n \n", n); 

사용하지 않은 변수가 있으며 컴파일 할 수 없다는 오류가 발생합니다.

+0

이 기능이 인터넷 어디에서나 문서화되어 있는지 궁금합니다 ... 아니, 그렇지 않을 수도 있습니다. –

+0

호기심에서 벗어나 왜 "% n"이 (가) 작동하기를 기대 했습니까? 팁 : 라이브러리 함수에 대한 호출을 작성하는 경우, 자신이하는 일을 확실하게 확신하지 않는 한 항상 * 해당 함수에 대한 설명서를 읽으십시오. (그리고'\ n '앞의 공백은 아마도 불필요 할 것입니다.) –

+0

@KeithThompson : 저는 변수의 이름 ... 또는 추측과 연관이 있다고 추측합니다. 그리고 OP는 " 번호". 나도 몰라 ... –

답변

0

다른 답변이 표시된대로 보통 int%d 변환 지정 또는 %i 변환 지정으로 인쇄합니다. %o, %x 또는 %X (및 %u)을 사용할 수도 있지만 기술적으로는 서명 된 서명되지 않은 변환이 포함됩니다.

%nprintf() 등의 유효한 변환 지정입니다. 그러나 다른 모든 변환 지정과 달리 %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 변환 사양을 불법으로 매개 변수.

1

는 정수가 %d (또는 %i)를 사용하여 서명.

수정 자 전체 목록은 man 3 printf (유닉스 계열 시스템에서)을 참조하십시오.

관련 문제