[C++] - 백준 1152번 getline()

안지현·2023년 3월 6일
0

C++

목록 보기
2/2
post-thumbnail

문자열에 관한 라이브러리가 cstring, string으로 두 가지가 있다.
뒤에 '\0'으로 끝나는 char* 형식을 따르는 C언어 방식의 문자열 라이브러리(cstring)과 std::string을 따르는 라이브러리(string) 이다.

1. std::istream::getline - cin.getline()

  istream& getline(char* s, streamsize n);
  istream& getline(char* s, streamsize n, char delim)
  • s : C형식 문자열을 저장할 배열을 가리키는 포인터
  • n : 저장할 문자열의 최대 개수(끝의 종료 널 문자를 포함한 값). 만약 입력 스트림의 최대 크기에 도달하여 입력이 중단되면 failbit 플래그가 설정됩니다.
  • delim : 제한자로 이 문자에 도달시 추출이 중단됩니다. 이때 이 문자는 s에 기록이 되지는 않지만 스트림에서 사라지게 됩니다.

기본 사용법

    #include <iostream>
    #include <fstream> //파일입출력
    
    int main(){
    	char greeting[100];
        cout <<"say sth: ";
        cin.getline(greeting, 10);
        cout << "greeting console: " << greeting << "\n";
        
        ifstream ifs;
        ifs.open("fileinput.txt");
        ifs.getline(greeting, 100);
        cout << "greeting file: " << greeting;
        ifs.close();
        return 0;
    }

2. std::getline(string)

	istream& getline(istream& is, string& str);
	istream& getline(istream& is, string& str, char delim);
  • is : 입력스트림 오브젝트 ex)cin
  • str : 입력받은 문자열을 저장할 string 객체
  • delim : 제한자로 이 문자에 도달시 추출이 중단됩니다. 이때 문자는 s에 기록되지는 않지만 스트림에서 사라지게 됩니다.

기본 사용법

#include <iostream>
#include <string>
#include <fstream>

int main{
	string greeting;
  getline(cin, greeting);
  cout << "console 입력 값: " << greeting << "\n";
  
  ifstream ifs;
  ifs.open("fileinput.txt");
  getline(ifs, greeting);
  cout << "file 입력 값: " << greeting << "\n"
  return 0;
}

0개의 댓글