데일리 codeup/입출력
특정 문자를 사이에 두고 2개의 값을 입력_220701
hayo_su
2022. 7. 1. 15:53
두 수가 공백이 아닌 특정 문자를 사이에 두고 입력으로 들어는 경우에는, cin 을 이용해 그 문자를 문자형 변수에 입력받아 무시하고 두개의 수를 받을 수 있다.
예제
#include <iostream>
using namespace std;
int main() {
int a, b;
char c;
cin >> a >> c >> b;
cout << a << endl << b;
return 0;
}
출력결과
>> 50:60
50
60
이때 중간 문자를 무시하는 것을 새로운 변수를 선언하지 않고 cin.get()을 이용하여 해결할 수 있다.
#include <iostream>
using namespace std;
int main() {
int a, b;
cin >> a;
cin.get();
cin >> b;
cout << a << endl << b;
return 0;
}
출력결과
>> 50:60
50
60
1시간 뒤 시간 출력
h:m
모양의 시간과 분으로 이루어져 있는 시간을 입력받아 1시간 뒤의 시간을 출력하는 프로그램을 작성해보세요
#include <iostream>
using namespace std;
int main(){
int a,b;
char m;
cin >> a >> m >> b;
cout << a + 1 << m << b;
return 0;
}
입력
22:1
출력 결과
23:1
특정 문자를 사이에 두고 3개 이상의 값을 입력
-
문자를 사이에 두고 3개의 수를 입력받아 출력하는 코드는 다음과 같다. -
는 입력받아 쓰일 곳이 없기 때문에, 하나의 문자형 변수에 받아줄 수 있다.
예제
#include <iostream>
using namespace std;
int main() {
int a, b, c;
char d;
cin >> a >> d >> b >> d >> c;
cout << a << endl << b << endl << c;
return 0;
}
출력결과
>> 50-60-70
50
60
70
마찬가지로 cin.get() 을 이용하여 받을 수도 있다.
#include <iostream>
using namespace std;
int main() {
int a, b, c;
char d;
cin >> a;
cin.get();
cin >> b;
cin.get();
cin >> c;
cout << a << endl << b << endl << c;
return 0;
}
날짜 변경하여 출력 2
mm-dd-yyyy
모양의 날짜 정보를 입력받아 yyyy.mm.dd
형식으로 출력하는 프로그램을 작성해보세요.
#include<iostream>
using namespace std;
int main(){
int m,d,y;
char g;
cin >> m >> g >> d >> g >> y;
cout << y << '.' << m << '.' <<d;
return 0;
}
입력
2-28-1
출력 결과
1.2.28
입력받아 출력2
OOOOOO-OOOOOOO 형식으로 이루어져 있는 주민번호를 입력받아, -를 제외하여 출력하는 프로그램을 작성해보세요.
#include <iostream>
using namespace std;
int main(){
int a,b;
cin >> a;
cin.get();
cin >> b;
cout << a << b;
return 0;
}
입력
940312-1082836
출력 결과
9403121082836
날짜 변경하여 출력
yyyy.mm.dd 모양의 날짜 정보를 입력받아 mm-dd-yyyy 형식으로 출력하는 프로그램을 작성해보세요.
#include <iostream>
using namespace std;
int main(){
int y,m,d;
char dot;
cin >> y >> dot >> m >> dot >> d;
dot = '-';
cout << m << dot << d << dot << y;
return 0;
}
전화번호 바꾸기
010-xxxx-yyyy 형태의 전화번호를 입력받아 앞 4자리와 뒤 4자리를 바꾸어 출력하는 프로그램을 작성해보세요.
#include <iostream>
using namespace std;
int main(){
int x, y, z;
char dash;
cin >> z >> dash >> x >> dash >> y;
cout << "010" << dash << y << dash << x;
return 0;
}
변수 z에서 010을 입력 받으면 int로 변환하여 10으로 저장된다.
이를 프린트하면 앞자리 0가 생략되기 때문에 추가적인 조치가 필요하다.
입력
010-8765-4321
출력 결과
010-4321-8765