출력과 동시에 프로그램 종료하기
in Tips. / 🚩 C 팁 목록 (9)
#include <stdio.h>
int main(){
int n;
while(1){
scanf("%d",&n);
if(n == 5){
printf("YES");
return 0;
}
}
}
위와 같이 5를 입력받으면 YES를 출력하고 프로그램을 종료하는 경우에
if(n == 5){
printf("YES");
return 0;
}
을 아래와 같이 바꿔 쓸 수 있습니다.
if(n == 5) return !printf("YES");
printf()의 경우에는 출력하는 문자열의 길이를 리턴합니다.
예를 들어 printf(“%d”,printf(“YES”));를 실행해보면 YES3이 나오는 것을 확인할 수 있습니다.
따라서 return !printf(“YES”);는 return !3;이 되고, 0 이외의 수는 true이기 때문에 return 0; 으로 해석할 수 있습니다.
두 번째로는 C++ std::cout의 경우입니다.
반환형이 int였던 printf()와는 다르게 cin과 cout의 반환형은 istream 객체입니다.
(예외적으로 조건문에서는 자동적으로 bool형으로 변환됨)
메인함수의 반환형은 int형이어야 하기 때문에 return cout « “YES”; 를 실행하면 오류가 뜨게 됩니다.
cout을 실행 한 뒤 바로 프로그램을 종료하는 방법은 아래와 같습니다.
#include <iostream>
using namespace std;
int main(){
int n;
while(1){
cin >> n;
if(n == 5) return cout << "YES",0;
}
}