실습 1
#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;
}
실습 2 기말 시험 범위
기말 고사 시험 범위
강의 자료의 예제 소스를 모두 작성해 올 필요는 없습니다.
대부분 개념을 묻는 문제.
상속(13주 차 : C++11(상속 심화)의 pp. 13-14)은 소스를 작성해오면 도움이 됩니다.
-------------
- 9주 차 : C++07(객체와 멤버 배열 생성자 소멸자 this)
중요 : pp. 19 일차원 배열의 이름 : 배열의 시작주소
제외 : pp.20-30, 34, 53, 59-62
- 10주 차 : C++08(const new)
제외 : pp. 3-5, 27-33, 50-51
- 11주 차 : C++09(함수중첩 디폴트 인자)
제외 : pp. 17, 23-26
- 12주 차 : C++10(상속)
제외 : pp. 36-44
- 13주 차 : C++11(상속 심화)
제외 : pp. 11
중요 : pp. 13-14 소스 작성 문제
- 13주 차 : C++11-1(overriding static)
제외 : pp. 11. 18-24
- 14주 차 : C++12(template STL friend 예외처리)
제외 : pp. 11-19, 22-31, 34, 35, 37, 38, 41-53, 59-61
- 15주 차 : C++13(콘솔파일입출력)
아래 예제만 시험 범위
pp.18, 22, 23, 29, 30, 31, 32
#include <iostream>
using namespace std;
int main() {
cout << "디폴트\n";
//cout.width(10);
cout.width(5); // 앞에 있는 줄을 띄어줌
cout << 123 << 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);//소수점 3자리만 출력
cout << 12.34567 << endl; // 12.346만 출력됨
return 0; //
}
위 코드도 시험범위에 포함.
출력할때 띄어쓰기, 채우기, 소수점을 다루고 싶을때 사용하는 멤버 함수이고, namespace std라는 지역이름을 사용하지 않으면 std::를 붙여야 한다.
실습 3
#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;
}
10으로 바꿨을 때 10진수는 -> 10, 16진수는 -> a, 8진수는 12로 바뀐다.
#include <iostream>
#include <iomanip> // setw를 사용하기 위해서 이 헤더파일을 사용해야함.
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; //setw 사용
cout << setw(10) << 12345 << endl;
cout << setw(10) << 123.45 << endl;
//-----------
cout << "디폴트\n";
cout.width(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;
}
실습 3 파일로 출력하기 (파일 입출력)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream hout("test1.txt"); // 출력파일 스트림 객체 hout 선언
if (!hout) {
cout << "출력할 파일을 열 수 없습니다.";
return 1;
}
hout << "hello모두들안녕내가 누군지 아늬\n";
hout << 100 << endl << hex << 23.4 << endl;
hout.close(); //파일 종결
return 0;
} // 게임에서 랭킹 시스템을 만들 때 사용한다. , 혹은 파일을 가지고 놀 때
디버깅 했을 때 콘솔창에서 안나오고.
위와 같은 파일이 생성되어서 파일에 소스입력한 내용들이 생성된것을 알 수 있다.
오른쪽 사진의 설명을 보면 ifstream, ofstream, fstream 등을 이용해서 개방을 할 수 있고 객체이름.close()할 시 파일들이 종결하는 것을 알 수 있다.
(파일을 저장하는 방법)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream xxx("test2.txt"); // 출력파일 스트림 객체 hout 선언 객체이름 선언.
if (!xxx) {
cout << "출력할 파일을 열 수 없습니다.";
return 1;
}
xxx << "안녕 내이름 kbh\n";
xxx << "hello모두들안녕내가 누군지 아늬\n";
xxx << 100 << endl << hex << 23.4 << endl;
xxx.close(); //파일 종결
return 0;
} // 게임에서 랭킹 시스템을 만들 때 사용한다. , 혹은 파일을 가지고 놀 때
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream hin("test3.txt"); // 입력파일 스트림 객체 hin 선언
if (!hin) {
cout << "입력할 파일을 열 수 없습니다.";
return 1;
}
char str[50];
int i, j;
hin >> str >> i >> j;
cout << str << " " << i << " " << j << endl;
hin.close(); // 파일 종결
return 0;
}
(파일에서 데이터를 입력 받는 방법)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream hin("test.txt"); // 입력파일 스트림 객체 hin 선언
if (!hin) {
cout << "입력할 파일을 열 수 없습니다.";
return 1;
}
char str[50];
int i, j;
hin >> str >> i >> j;
cout << str << " " << i << " " << j << endl;
hin.close(); // 파일 종결
return 0;
}
(저장, 불러오기 하는 방법)
#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;
}
(파일 입출력에서 특정 부분에서 변경하는법)
#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 == 'i') ch = 'j';
cout << ch;
}
hin.close();
return 0;
}
실습 1
실습 2
실습 1
실습 2
'C++' 카테고리의 다른 글
C++ 14주차 (0) | 2023.12.07 |
---|---|
C++ 프로그래밍 13주차 (0) | 2023.11.30 |
C++프로그래밍 12주차 (0) | 2023.11.23 |
C++ 프로그래밍 11주차 (0) | 2023.11.16 |
C++ 10주차 (1) | 2023.11.09 |