일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- 자바스크립트
- 네이버 부캠
- 자바스크립트 객체
- 부스트캠프
- beautifulsoup
- 네이버 부스트캠프 멤버십
- PubSub 패턴
- 멘션 추천 기능
- React ssr
- 자바 프로젝트
- 자바스크립트 컴파일
- Image 컴포넌트
- 파이썬 코딩테스트
- 프로그래머스
- 브라우저 동작
- 파이썬 웹크롤링
- 네이버 부스트캠프
- React.js
- Next/Image 캐싱
- 비디오 스트리밍
- git checkout
- 코딩테스트
- react
- c++
- 스택
- Next.js
- 웹크롤링
- 씨쁠쁠
- 파이썬
- Server Side Rendering
- Today
- Total
코린이의 개발 일지
[c++ 문법] 파일 입출력 - 텍스트 파일 내용 본문
안녕하세요. 오랜만에 돌아온 폴라민입니다.
이번에는 지난학기에 프로젝트 하면서 자주 사용했었던 내용을 한번 들고 와봤습니다.
사실 프로젝트할 때 거의 대부분 빠질 수 없는 내용이죠. 파일 입출력.
어떤 프로그램이든 사용자가 입력한 데이터를 영구 저장해두는 것이 큰 메리트이니까요.
우선 간단한 텍스트 파일 저장 방식부터 보겠습니다.
1. 파일에 내용 저장하기
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream myfile; //create file stream object variable
// ofstream은 file에 write하는 stream class이다.
myfile.open("example.txt");
myfile << "writing this to a file\n";
myfile.close();
return 0;
}
여기서는 fstream이라는 라이브러리를 사용했습니다.
fstream을 include하였으니 이제 myfile이라는 ofstream 객체를 생성해줍니다.
여기서 ofstream은 파일에 내용 입력만 가능합니다.
만약 파일 내용을 읽고 싶다면 ifstream을 사용하면 됩니다. 이 예제도 뒤에서 다루도록 하겠습니다.
아무튼 이제 myfile이라는 객체가 만들어 졌으니 내가 만들고 싶은 파일 이름을 적어 파일을 엽니다.
myfile.open("example.txt");
확장자까지 꼭 적어 주도록 합시다.
텍스트 파일을 열었으니 이제 파일에 적고 싶은 내용을 적습니다.
myfile << "writing this to a file\n";
그 후 파일을 닫아줍니다.
myfile.close();
자 그럼 파일이 제대로 생성 되었는지 확인 하겠습니다.
저는 visual studio 프로그램을 사용하는 데요
프로젝트 폴더를 더블클릭 하면 내부에 프로젝트와 이름이 같은 폴더가 있는데요, 그 폴더에 들어갑니다.
위의 예시에서는
Project1 -> Project1
이 순서로 들어갑니다. 그러면
저희가 저장한 example 텍스트 파일이 잘 생겼네요. 내용은 우리가 입력한대로 되어있는지 볼까요?
저희가 프로그래밍한 데로 잘 저장되었네요.
자 그럼 파일을 다시 읽어와 봅시다.
2. 파일 내용 읽어오기
// 텍스트 파일 읽기
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
string line; //string 객체 선언
ifstream myfile("example.txt");
if (myfile.is_open())
{
while (getline(myfile, line)) { // getline 함수, myfile 에서 문장을 읽어와 line이라는 변수에 저장.
// getline이 하나의 입력으로 받아들이는 기준은 엔터
cout << line << endl;
}
myfile.close();
}
else cout << "Unable to open file";
return 0;
}
읽어오는 문장은 string으로 다루기 위해 string객체를 생성하였습니다.
이번에는 파일에서 내용을 읽어오는 것이니 ifstream객체를 생성합니다.
만약 파일이 정상적으로 열리면, 즉 myfile.is_open()의 retrun 값이 true이면 파일 내용을 문장 단위로 읽어오고, 파일이 정상적으로 열리지 않을 경우 예외 처리를 해 두었습니다.
한번 실행 시켜 볼까요?
아까와 같은 프로젝트에서 소스코드만 바꿔 실행 해 보았습니다.
만일 파일 이름을 틀리게 적어 파일을 찾을 수 없으면 어떻게 될까요?
이 경우 예외처리를 해두었기 때문에 에러가 발생하지 않고 아래와 같이 결과가 뜹니다.
규모가 큰 프로젝트에서는 이러한 예외처리가 굉장히 도움이 되겠죠?
오늘은 간단한 파일 입출력에 대해 정리해보았습니다.
도움이 되셨으면 좋겠네요! 그럼 안녕~~
'프로그래밍 언어 문법 > c++ 문법 정리' 카테고리의 다른 글
[c++ 문법] 클래스 (class) 사용하기 - 생성자, public, private (0) | 2021.09.29 |
---|---|
[c++ 문법] c++ 입출력, 문자열 입출력 (string class 사용하기) (0) | 2021.09.19 |
[c++ 문법] c++ 기초, Hello world 출력하기 (0) | 2021.09.19 |