1. 정보를 입력받아 텍스트 파일에 저장하기


파일 입출력 라이브러리 <fstream>
정수 sid가 문자열로 변환되어 저장됨
2. ifstream과 >> 연산자로 텍스트 파일 읽어 화면에 출력하라


3. get()을 이용하여 텍스트 파일 /etc/passwd를 읽어 화면에 출력하라


get()을 이용한 텍스트 파일 읽기에서 \r, \n을 한 개로 읽어와
줄 바꿈 문자의 수만큼 바이트 수가 줄어든다 (윈도우에서만)
4. fstream을 이용하여 student.txt 파일에 student2.txt를 덧붙이는 프로그램을 작성하라.

string firstFile = "student.txt"
const char* firstFile = "student.txt"
같이 쓸 수 있다.
5. getline(ifstream&, string&)으로 words.txt 파일을 읽고 단어를 검색하는 프로그램을 작성하라



벡터 v에 파일의 정보를 라인별로 읽어 저장한 후 v에서 문자열을 검색하여 출력
# getline()
getline() 함수는 두 가지가 존재하는데 각각 다른 라이브러리에 존재한다. istream 라이브러리에 속한 cin.getline() 함수와 string 라이브러리에 속하는 getline() 함수가 있다.
1. istream의 getline(char* line, int n)
- 문자 배열이며 줄 바꿈 문자 \n을 읽지 않고 스트림 버퍼에서 제거함
- n-1개의 문자 개수만큼 읽어와 line에 저장 (n번째 문자는 NULL(‘\0’)로 바꾼다.)
- 세 번째 인자인 종결 문자를 지정해 주지 않으면 엔터('\n')로 인식
- char buf[81]; //한 라인이 최대 80개의 문자로 구성된다고 가정
- ifstream fin("student.txt");
- fin.getline(but, 81)
2. string의 getline(ifstream &fin, string &line)
- 최대 문자 수를 입력하지 않고 종결 문자를 만날 때까지 모든 문자열을 입력받아 하나의 string 객체에 저장
- string line;
- ifstream fin("student.txt");
- getline(fin, line);
getline() 함수 전에 cin 을 사용하였다면 버퍼에 줄 바꿈 문자 \n이 그대로 남아 있기 때문에 cin.ignore() 함수를 사용해 입력 버퍼의 내용을 제거하여야 함.
'C++' 카테고리의 다른 글
C++ 실습 문제 25 (예외 처리와 C언어 링크 지정) (0) | 2022.06.12 |
---|---|
C++ 실습 문제 24 (파일 입출력) (0) | 2022.06.08 |
C++ 실습 문제 22 (입출력 멤버 함수) (0) | 2022.05.29 |
C++ 실습 문제 21 (입출력 멤버 함수) (0) | 2022.05.29 |
C++ 실습 문제 20 (C++ 표준 템플릿 라이브러리- STL) (0) | 2022.05.24 |