1. 참조자(reference)
2. 참조자(reference) 예시
#include <iostream>
using std::cout;
using std::endl;
int main(void)
{
int x = 10;
int rx = x; //int rx = 10;
cout << x << " " << rx << endl;
rx = rx + 10;
cout << x << " " << rx << endl; //참조자(rx)에 변화를 주면 그 타켓(x)도 변함
x = x + 10;
cout << x << " " << rx << endl; //타켓(x)에 변화를 주면 그 참조자(rx)도 변함
return 0;
}
#include <iostream>
using std::cout;
using std::endl;
int main(void)
{
int x = 10;
int &rx = x; //int rx = 10;
cout << x << " " << rx << endl;
rx = rx + 10;
cout << x << " " << rx << endl; //참조자(rx)에 변화를 주면 그 타켓(x)도 변함
x = x + 10;
cout << x << " " << rx << endl; //타켓(x)에 변화를 주면 그 참조자(rx)도 변함
return 0;
}
3. 형식 설정 멤버함수
#include <iostream>
using namespace std;
int main() {
cout << "디폴트\n";
cout.width(10); //10자리로 출력
cout << -50 << endl;
cout << "[ * fill ]\n";
cout.fill('*'); //빈 칸을 *로 채우기
cout.width(10);
cout << -50 << endl;
cout.width(10);
cout << 100.25 << endl;
cout.width(10);
cout << "HanSH" << endl;
cout.fill(' ');
cout.precision(6); //소수점을 제외한 전체 자리수
cout << 12.34567 << endl;
cout << fixed; //소수점 이하의 자리수만 다루게 함
cout.precision(3);
cout << 12.34567 << endl;
return 0;
}
4. 다음 프로그램의 실행 결과는?
#include <iostream>
using namespace std;
int main()
{
int num = 100;
cout << "10진수: " << num << endl;
cout << "16진수: " << hex << num << endl;
cout << "8진수: " << oct << num << endl;
return 0;
}
5. setw()/setfill()
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
cout << "abcdefg\n";
cout << 12345 << endl;
cout << 123.45 << endl;
cout << "10칸\n";
cout << setfill('*');
cout << setw(10) << "abcdefg" << endl;
cout << setw(10) << 12345 << endl;
cout << setw(10) << 123.45 << endl;
return 0;
}
6. 입출력 조절자(I/O manipulator)
매개변수를 갖는 조절자를 사용하는 경우에는 헤더파일을 include해야 함
7. 파일의 개방/종결 형식
8. 파일로 출력하기
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream hout("test.txt"); // 출력파일 스트림 객체 hout 선언
if (!hout) {
cout << "출력할 파일을 열 수 없습니다.";
return 1;
}
hout << "집가고싶어\n";
hout << 777 << endl << hex << 77.7 << endl;
hout.close(); //파일 종결
return 0;
}
9. 파일로부터 입력받기
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream hin("test.txt"); // 입력파일 스트림 객체 hin 선언
if (!hin) {
cout << "입력할 파일을 열 수 없습니다.";
return 1;
}
char str[50];
int i;
double j;
hin >> str >> i >> j;
cout << str << endl << " " << i << endl<< " " << j << endl;
hin.close(); // 파일 종결
return 0;
}
10. 파일 입출력을 수행하는 프로그램
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream hout("test.txt");
if (!hout) {
cout << "출력할 파일을 열 수 없음.";
return 1;
}
hout << "Han S. H. \n";
hout.close();
ifstream hin("test.txt");
if (!hin) {
cout << "입력할 파일을 열 수 없음.";
return 1;
}
char str[50];
hin >> str;
cout << str << endl;
hin.close();
return 0;
}
11. "test.txt"에 저장된 내용을 읽어들여 공백을 "*"로 채워 화면에 출력
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
char ch;
ifstream hin("test.txt");
if (!hin) {
cout << "입력할 화일을 열 수 없음";
return 1;
}
hin.unsetf(ios::skipws);//공백 무시x
while (!hin.eof()) {
hin >> ch;
if (ch == ' ') ch = '*';
cout << ch;
}
hin.close();
return 0;
}
C++ 강의 자료 참고했습니다.
'C++' 카테고리의 다른 글
[C++ 프로그래밍] 14주차 템플릿(template) STL(Standard Template Library) 예외처리 (0) | 2023.12.07 |
---|---|
[C++ 프로그래밍] 13주차 overriding : 가상함수(virtual function)static (2) | 2023.11.30 |
[C++ 프로그래밍] 12주차 상속(inheritance) (2) | 2023.11.23 |
[C++ 프로그래밍] 11주차 함수중첩, 디폴트 인자 (0) | 2023.11.16 |
[C++ 프로그래밍] 10주차 const동적 메모리 할당(new, delete) (6) | 2023.11.09 |
[C++ 프로그래밍] 9주차 객체와 멤버 생성자 소멸자 this (0) | 2023.11.02 |
[C++ 프로그래밍] 7주차 멤버의 접근 속성클래스와 객체 만들기 (2) | 2023.10.19 |
[C++ 프로그래밍] 6주차 객체지향언어특징 클래스와객체 접근속성 (0) | 2023.10.12 |