일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 쌤쌤쌤
- 1174
- boj #백준
- 3343
- backtracking #codetree #디버깅 #삼성코테
- hcpc
- 진법변환 #2to10 #10to2 #이진법 #십진법 #변환 #bitset #c++
- 투포인터 #백준 #boj #20922 #22862
- 최소 #공배수 #최대 #공약수 #유클리드 #호제법 #lcm #gcd #c++ #boj #3343 #백준 #장미
- c++ #boj #
- 16202
- 백준 #다익스트라 #dijkstra #9370 #c++
- LIS #가장긴증가하는부분수열 #
- 사이클 없는 그래프
- 3D #Reconstruction #computer #vision #volume #metric #tsdf #kinect #fusion
- 레드아보
- 이분탐색 #dp #11053
- 호반우 상인
- c++ #입출력 #속도 #ios #sync_with_stdio #cin #cout #tie
- 코딩
- 줄어드는수
- 22869
- C++
- 30870
- graph
- BOJ
- 백준
- N번째큰수
- 20117
- graph #최단경로
- Today
- Total
hyunjin
[C++]기초 입출력 1012~1025 , iomanip , getline(),간단 scanf 본문
[1012]
#include <bits/stdc++.h>
#include <iomanip>
using namespace std;
int main(void){
float number;
cin>>number;
cout<<fixed<<setprecision(6)<<number<<"\n";
return 0;
}
cout의 기본 정밀도는 6이라고 한다.
이 문제에서 제시된 예시는 7자리 수 이므로 출력 자릿수 조정이 필요.
iomanip 헤더의 setprecision 기능 사용
fixed 와 setprecision 을 같이 : 소수점 n 자리수 출력
fixed 가 없다면 : 정수와 소수 부분 합쳐서 n 자리수 출력
[1015] 1012와 같은 맥락
#include <bits/stdc++.h>
#include <iomanip>
using namespace std;
int main(){
float num;
cin>> num;
cout<<fixed<<setprecision(2)<<num;
return 0;
}
[1020]
#include <bits/stdc++.h>
#include <iomanip>
using namespace std;
int main(){
int f,r;
scanf("%d-%d",&f,&r);
printf("%06d%06d",f,r);
return 0;
}
입력은 '-'로 구분하여 입력받는다.
자릿수를 고정하는 정수형을 사용하여 출력한다.
이것을 사용하지 않으면 000112는 112로 출력된다.
[1022]
#include <bits/stdc++.h>
using namespace std;
int main(){
string ans;
getline(cin,ans);
cout<<ans;
return 0;
}
hello world 처럼 중간에 띄어쓰기가 들어간 경우 입력받기 위해서
getline을 사용했다.
1. std::getline()
- <string>에 정의되어 있음
- getline() 의 사용법
첫 번째 인자 : 파일입력인지 표준 입역인지
두 번째 인자 : 문자열을 저장할 string 변수명
세 번째 인자 : 입력받은 문자들 중 어느 문자 전까지 저장할 것인지. ex ) 'z'
default는 "\n"
2. std::cin.getline()
- <iostream>에 정의된 cin의 멤버 함수
- cin.getline() 의 사용법
첫 번째 인자 : 문자열 저장할 char 배열명
두 번째 인자 : 저장할 문자 최대 개수
char str[50];
cin.getline(str,10);
cout<<str<<endl;
3. fgets() 사용
- <stdio.h> 헤더파일
char s[2001];
fgets(s,2000,stdin);
printf("%s",s);
- 기본형 : char *fgets(char * buffer, int max,FILE * stream);
-첫 번째 인자 buffer : 저장할 버퍼(변수)
두 번째 인자 max : 문자열을 구성하는 문자 최대 개수 - 1
세 번째 인자 stream : 입력 파일 스트림 ex)stdin
[1023]
실수 한 개를 입력받은 후 정수 부분, 실수 부분 따로 출력하기
(단, 입력값은 절댓값이 10000을 넘지 않으며, 소수점 이하 자릿수는 최대 6자리까지이고
0이 아닌 숫자로 시작한다.)
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,f;
scanf("%d.%d",&n,&f);
cout<<n<<"\n"<<f;
return 0;
}
정말 간단하다. 입력이 x.xxx 이런식으로 '.'을 기준으로 int가 들어오니
scanf를 이용하면 바로 풀린다.
어렵게 생각하지말고 쉽게 바로 풀렸으면 좋겠다.
[1025]
int main(){
int n[5];
scanf("%1d%1d%1d%1d%1d",&n[0],&n[1],&n[2],&n[3],&n[4]);
return 0;
}
다섯 자리 정수를 입력 받는데 각 자리별로 나누어
70000
5000 ..
이런 식으로 출력하는 문제다.
%1d 이렇게 간단하게 해결할 수 있다.
참고,출처
'알고리즘 연습 > 코드업' 카테고리의 다른 글
[C++][비트 단위 논리 연산] 1059~ 보수 , ~, & ,| ,^, << ,>> (0) | 2020.09.04 |
---|---|
[C++][비교,논리 연산] (0) | 2020.09.04 |
[C++][기초- 비트 시프트 연산자] (0) | 2020.09.03 |
[C++][기초-출력변환] 8진,16진 (0) | 2020.09.02 |
[C++][기초-데이터형]1028~1029 (0) | 2020.09.02 |