노력과 삽질 퇴적물
CPP: 파일처리 본문
1. 스트림
=> 좌인우출(?) = 좌측에서 흘러 들어가고, 우측에서 흘러 나간다.
2. 파일처리
3. 예외처리
4. 파일분할법
5. 이름공간
=> 파일분할법으로 작성해둔 파일을 include시킬때, 동명변수때문에 충돌가능성 有!!!
=> new_space명은 1개만 만들수 있다.
① Scope 해결 연산자[::] 사용법
② using 사용법1
③ using 사용법2
④ 이름없는 이름공간
=> 좌인우출(?) = 좌측에서 흘러 들어가고, 우측에서 흘러 나간다.
cin >> ... >> endl;
cout << ... << endl;
2. 파일처리
① 연다
② 처리한다(읽거나 쓰기)
③ 닫는다.
텍스트 파일(text file) | 바이너리 파일(binary file) | |
쓰기 (W = 파일쓰기용 객체명 가칭) |
ofstream W ("텍스트파일.확장자"); W << "입력될_문자열"; W.close(); |
ofstream W ("이진파일.확장자", ios::out | ios::binary); R.read(버퍼명, 버퍼크기); W.write(버퍼명, R.gcount); W.close(); |
읽기 (R = 파일쓰기용 객체명 가칭) |
ifstream R ("텍스트파일.확장자"); char read_c R.get(read_c); R.close(); |
ifstream R ("이진파일.확장자", ios::in | ios::binary); R.read(버퍼명, 버퍼크기); R.close(); |
3. 예외처리
반환형 function(...)
{
if (...에러검사...)
throw 예외시_처리값;
return ...;
}
int main(...)
{
...
try
{
function(...);
}
catch(자료형 인수1)
{
...
}
...
catch(자료형 인수N)
{
...
} //catch문을 여러개 해서 다양한 에러처리를 가능하게 한다.
return 0;
}
4. 파일분할법
user_header.h 함수원형선언 |
user_functiontion.cpp 함수정의 |
main.cpp 함수사용 |
void function_1(...); ...; void function_n(...); |
#include "user_header.h" void function_1(...) { ...... } ... void function_n(...) { ...... } |
#inlcude <iostream> #include "user_header.h" int main() { function_1(...); ...; function_n(...); return 0; } |
↓↓↓
//실제로 동작되는 코드
#inlcude <iostream>
void function_1(...);
...
void function_n(...);
int main()
{
function_1(...);
...;
function_n(...);
return 0;
}
void function_1(...)
{
...;
}
...
void function_n(...)
{
...;
}
5. 이름공간
=> 파일분할법으로 작성해둔 파일을 include시킬때, 동명변수때문에 충돌가능성 有!!!
=> new_space명은 1개만 만들수 있다.
① Scope 해결 연산자[::] 사용법
using namespace std;
namespace new_space명
{
...이름공간_멤버변수...;
...이름공간_멤버함수()...;
}
...
new_space명 :: 이름공간_멤버변수;
new_space명 :: 이름공간_멤버함수();
② using 사용법1
using namespace std;=> 일부 이름만 접근 및 참조가능.
namespace new_space명
{
...이름공간_멤버변수...;
...이름공간_멤버함수()...;
}
...
using new_space명 :: 이름공간_멤버변수;
using new_space명 :: 이름공간_멤버함수;
③ using 사용법2
using namespace std;=> 이름공간내 모든 이름을 접근가능.
namespace new_space명
{
...이름공간_멤버변수...;
...이름공간_멤버함수()...;
}
...
using namespace new_space명;
④ 이름없는 이름공간
#include <iostream.h> int main() { cout << "C++" << endl; return 0; } |
#include <iostream> int main() { std::cout << "C++" << std::endl; return 0; } |
#include <iostream> using namespace std; int main() { cout << "C++" << endl; return 0; } |
namespace //new_space명이 생략.
{
...이름공간_멤버변수...;
...이름공간_멤버함수()...;
}
'📂기초 및 세팅 note > 언어. C&C++ 계열' 카테고리의 다른 글
API 관련 기본 매크로 (0) | 2011.12.14 |
---|---|
CPP: 문자열 (0) | 2011.10.12 |
CPP: 함수관련 편리한(?) 예약어 (0) | 2011.08.02 |
가상함수 & 추상클래스 (0) | 2011.07.26 |
OOP: 상속(or 계승) (0) | 2011.07.25 |