본문 바로가기

getline3

[백준 11719/c++] 그대로 출력하기 2 문제중에 입력 수가 정해지지 않고 입력을 계속 받는 문제가 있다 한줄이 아니라 여러 줄을 계속 입력 받아서 그대로 출력할 일이 있을 경우 cin.eof() 를 사용하면 된다 파일의 끝을 나타내는 eof() 를 이용해서 cin.eof() 는 현재 입력이 파일의 끝이라는 뜻이다 즉, 파일의 끝이 아니라면 더 입력할 것이 있다는 말이므로 조건부 무한 루프가 가능하다 while( !cin.eof() ) 이렇게 입력하면 파일의 끝에 도달하여 입력할 것이 없을때까지 계속 입력 가능하다 getline(cin, s) 로 그 줄의 공백 기호 모두 입력하여 출력하도록 하였다 앞으로 자주 쓸 방법이다 https://www.acmicpc.net/problem/11719 11719번: 그대로 출력하기 2 입력이 주어진다. 입력.. 2022. 6. 24.
cin 입력 후 다른 타입의 입력 시 꼭 cin.ignore를 해줘야 한다 정수형 cin을 입력 시, 숫자가 입력 버퍼에 저장되지 않고 바로 변수에 저장이 된다 하지만 문자열을 cin으로 입력 시, 입력 버퍼에 저장한 문자를 읽어서 변수로 저장한다 정수형 변수에 입력중에 문자열 변수가 입력이 되면 문자는 입력버퍼에 저장되고 cin은 이 버퍼의 문자를 정수형 변수에 저장하려고 하므로 정상 저장이 되지않고 에러가 나는 것이다 문자열 입력 시에도 \n 이 입력 버퍼에 남아서 문제가 되곤하니 이전 cin 사용 후 cin 이나 getline 등으로 새로운 자료형의 입력을 받을 때에는 항상 cin.ignore() 를 사용해서 입력버퍼를 비워주고 사용하자 2022. 6. 21.
[c++] getline, precision, fixed getline : cin을 사용해서 개행문자를 만나기 전까지의 모든 문자들을 가져와 문자열 타입의 변수로 저장하는 함수 이전 버퍼에 개행문자가 남아 있다면, 이전 입력 버퍼들을 cin.ignore() 를 통해 지워야 정상 작동한다 #include // 이 안에 string 타입도 내장되어 있다 using namespace std; string tok; int main(){ getline(cin, tok); // cin을 사용하여 입력받고 그 값을 문자열 변수 tok 에 저장한다 return 0; } precision : 정밀도라는 뜻. cout의 출력에서 실수의 정밀도를 나타내기위해 사용되는 함수 사용시, 가장 큰 자리 수부터 괄호 안의 숫자만큼 출력한다. 실수의 정수 부분을 고정하는 cout 2022. 6. 7.