2014-12-30 2 views
0

안녕하세요, 저는이 포럼에 처음 왔으며 저는 C + +를 배우는 학생입니다! 나는 출력을 위해 < <을 편리하게 사용하지만 이제는 printf를 대신 사용하고 싶다.C에서 한 문장으로 여러 printf

cout<<((2>1)"yes":"no")<<"hello"; 

이들 모두를 하나의 cout 문에서 사용할 수 있지만 printf에서는 가능합니다. 나는 다음을 시도했지만 실패했다! 오류!

printf ( (2>1)?"yes":"no" );// this gives the output yes but 

printf ( ((2>1)?"yes":"no") ("hello") );//this did not 

printf ( ((2>1)?"yes":"no") "hello" );// neither did this. 
+1

아니요, 그것들 중 어느 것도 가능하지 않습니다. printf에 대한 문서를 찾으십시오 (Google 또는 Bing을 통해 쉽게 찾을 수 있음). –

+0

개인적으로 비록 당신이 시도하는 방식대로 작동하지 않더라도 어쨌든 두 개의 분리 된 문장으로 구분하여 사용하기 쉽습니다. – user2366842

+0

'((2> 1)? "예": "아니오")'반복. 'static char const * const ny [] = { "no", "yes"};'한번 시도한 다음'ny [2> 1]로 사용하십시오. –

답변

2
printf("%s %s", ((2>1)?"yes":"no"), "hello"); 

같은 출력을 줄 것입니다.

+0

감사합니다! ! ! ! – nikhil

3

하나의 형식 문자열을 사용하여 다음 조건에 따라 매개 변수 값을 선택합니다

printf("%s %s", (2 > 1) ? "yes" : "no", "hello"); 

또는 단지를 :

printf("%s hello", (2 > 1) ? "yes" : "no"); 
+0

많이 있습니다! 운 좋게 나는 그것을 나 자신으로 이해했다. 그러나 당신의 대답을 나중에 읽었다. 감사! 모든 문제에 대한 이유는 방금 특정 프로그램에 대한 내 회선을 저장하고 싶었 기 때문입니다. – nikhil

-1

컴파일러의 전처리가 공백으로 구분 정적 문자열을 병합되므로, 다음과 같이 작동합니다

printf(
    "Now is the time " 
    "for all good men " 
    "to come to the aid " 
    "of their country." 
    ); 

괄호 안 함. 쉼표가 없습니다. 정적 인용구 사이의 공백 (공백, 탭, cr, lf)