프로그래밍

[C++] File input/output

하루삼십만원 2020. 10. 11. 11:36
반응형

[C++] File input/output

 

C++에서는 file의 문자 입력과 출력을 수행하기 위해 다음과 같은 클래스를 제공하고 있다고 합니다.

 

Class Description
ofstream write to file
ifstream read from file
fstream write and read file

 

아래 예제는 d:\squares_test.txt 라는 경로에 파일을 생성하고 cout 에 쓰는 것처럼 문장을 입력해 줄 수 있습니다.

첫 번째 예제가 file open과 close를 명시적으로 표기한 예제이고, 두 번째 예제는 file open과 close를 

사용하지 않고도 동일한 output을 보여주는 예제입니다.

 

file input example

첫 번째 예제를 더 짧게 구현한 것이 두 번째 예제입니다.

아래와 같이 동일한 결과를 얻을 수 있다는 것을 알 수 있습니다.

 

result of test file input example

 

궁금증이 생겨서 아래와 같이 file이 close가 된 이후로 다시 한 번 file에 입력을 하면 어떻게 될지를 

각각의 예제에서 test해 보았다. 예상대로, flie close이 후에는 file에 쓰는 것이 동작되지 않는다.

책에 쓰여진 문구를 그대로 옮기자면,

 

"명시적 형식은 파일을 처음 선언하고 나중에 어떤 이유로 열릴 때만 필요하다. 마찬가지로 명시적

close scope를 벗어나기 전에 파일을 닫아야 하는 경우에만 필요하다."

 

두 번째 처럼 명시적으로 file open/close를 안 써주는 것이 생산성이 높겠지만,

기본적으로 file open과 close를 명시적으로 작성하는 것이 Debugging에 유리할 것으로 생각된다.

 

write file after closing file

 

result of writing file after closing

 

>

반응형

'프로그래밍' 카테고리의 다른 글

[C++] shared_ptr, weak_ptr  (0) 2020.10.18
[C++] unique_ptr  (0) 2020.10.17
[C++] string format  (0) 2020.10.12
[C++] write string with ostream, stringstream class  (0) 2020.10.11
Support C++ Standard in Visual Studio  (0) 2020.10.09