◆소숫점 반올림
cout<<fixed;
cout.precision(2);
▷cout이 소수 2번째 자리까지 출력하도록 해준다.
◆논리 연산자
◆논리 연산자의 고려 사항
- 논리부정 연산자는 어떤 연산자보다 우선순위가 높아서 주의해야한다.
- 논리곱 연산자는 논리합 연산자보다 우선순위가 높다.
- ▷true && false || true → true && (false || true) → true && false → false
◆논리 연산자의 대체 표기
연산자 | 대체 표기 |
&& | and |
|| | or |
! | not |
- 키보드 중 논리 연산자를 나타내는 기호를 제공하지 않는 상황에 대처하기 위해 있다.
- INT_MAX : int 자료형의 최대 값 상수
- INT_MIN : int 자료형의 최소 값 상수
◆문자 함수를 위한 cctype 라이브러리
함수 이름 | 리턴 값 |
isalnum() | 매개변수가 영숫자, 즉 알파벳 문자이거나 숫자이면 true |
isalpha() | 매개변수가 알파벳 문자이면 true |
isblank() | 매개변수가 빈칸 문자 또는 수평 탭 문자이면 true |
iscntrl() | 매개변수가 제어 문자이면 true |
isdigit() | 매개변수가 십진 숫자이면 true |
isgraph() | 매개변수가 빈칸이 아닌 인쇄할 수 있는 문자이면 true |
islower() | 매개변수가 소문자이면 true |
isprint() | 매개변수가 빈칸을 포함하여 인쇄할 수 있는 문자이면 true |
ispunct() | 매개변수가 구두점 문자이면 true |
isspace() | 매개변수가 표준 화이트스페이스, 즉 빈칸, 용지 이송, 개행, 캐리지 리턴, 수평 탭, 수직 탭 문자이면 true |
isupper() | 매개변수가 대문자이면 true |
isxdigit() | 매개변수가 16진 숫자(0~9,a~f,A~F)이면 true |
tolower() | 매개변수가 대문자이면 소문자로 바꾸어 리턴한다. |
toupper() | 매개변수가 소문자이면 대문자로 바꾸어 리턴한다. |
◆열거체
- 일반적으로 cin은 열거체를 인식하지 않는다.
- int값을 switch 구문이 열거자 중의 하나에 대응하는 case 레이블과 비교할 때, 열거자가 int형으로 승급된다. 또한 열거자들은 while 루프 조건 검사에서도 int형으로 승급된다.
◆switch와 if else
- switch문은 값의 범위를 다룰 수 없으나, 선택 사항의 수가 2개가 아니라면 swich가 코드 크기나 실행 속도 면에서 if else 보다 효율적이다..
◆수를 읽어들이는 루프
●cin >> (int형)n 으로 사용자가 수를 입력하는 대신 문자를 입력한다면, 4 가지 일이 발생한다.
- n의 값은 변하지 않는다.
- 입력 큐에 잘못된 입력이 그대로 유지된다.
- cin 객체의 에러 플레그가 설정된다.
- cin 메서드 호출이 false(bool형으로 변환된다면)를 리턴한다.
●이를 해결 하기 위해 세 단계를 거쳐야 한다.
- 새로운 입력을 받아들일 수 있도록 cin을 초기화한다. //cin.clear()
- 입력 큐에 남아 있는 불량 입력을 제거한다. //while(cin.get() != '\n') continue;
- 사용자에게 다시 입력할 것을 요구한다.
◆콘솔 입력
- iostream 헤더 파일을 포함시켜야 한다.
- iostream 헤더 파일은 입력을 처리하는 istream 클래스를 정의한다.
- iostream 헤더 파일은 cin이라는 istream 변수 또는 객체를 선언한다.
- std 이름 공간을 지정해야 한다.
- cin을 >> 연산자와 함께 사용하여, 다양한 유형의 데이터를 읽을 수 있다.
- cin을 get() 메서드와 함께 사용하여, 개별적인 문자들을 읽을 수 있다. cin을 getline() 메서드와 함께 사용하여, 한 번에 한 행의 문자들을 읽을 수 있다.
- cin을 eof()와 fail()과 같은 메서드와 함께 사용하여, 입력시도가 성공했는지 감시할 수 있다.
- cin 객체 자체가 검사 조건으로 사용되었을 떄, 마지막 읽기 시도가 성공이면 bool 값 true로 변환된다.
◆파일 입력
- fstream 헤더 파일을 포함시켜야 한다.
- fstream 헤더 파일은 출력을 처리하는 ifstream 클래스를 정의한다
- 하나 이상의 ifstream 변수 또는 객체를 선언할 필요가 있다. 일반적인 이름 짓기 관례를 준수하는 한, 사용자는 원하는 이름을 지정할 수 있다.
- std 이름 공간을 지정해야 한다. 예를 들면, ifstream과 같은 요소들에 대해 using 지시자 또는 std:: 접두사를 사용한다.
- 특정 iifstream 객체와 특정 파일을 연결시킬 필요가 있다. 그렇게 하는 한 가지 방법은, open() 메서드를 사용하는 것이다.
- 파일을 다루는 작업이 끝나면, close() 메서드를 사용하여 그 파일을 닫아야 한다.
- ifstream 객체를 >> 연산자와 함께 사용하여 다양한 유형의 데이터를 읽을 수 있다.
- ifstream 객체를 get() 메서드와 함께 사용하여, 개별적인 문자들을 읽을 수 있다. ifstream 객체를 getline() 메서드와 함께 사용하여, 한 번에 한 행의 문자들을 읽을 수 있다.
- ifstream 객체를 eof()와 fail()과 같은 메서드와 함께 사용하여, 입력시도가 성공했는지 감시할 수 있다.
- ifstream 객체 자체가 검사 조건으로 사용되었을 때, 마지막 읽기 시도가 성공이면 bool 값이 true로 변환된다.
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
char filename[60];
ifstream inFile;
cout << "데이터 파일의 이름을 입력하시오 : ";
// 파일 생성
cin.getline(filename, 60);
inFile.open(filename);
// 파일 검사
if (!inFile.is_open())
{
cout << filename << " 파일을 열 수 없습니다." << endl;
return 0;
}
// 파일 입력
int value;
while (inFile.good())
{
inFile >> value;
}
// 결과 안내
if (inFile.eof())
cout << "파일 끝에 도달헀습니다.";
else if (inFile.eof())
cout << "데이터 불일치로 입력이 종료되었습니다.";
else
cout << "알 수 없는 이유로 입력이 종료되었습니다." inFile.close();
}
- cin.good()는 마지막 읽기 시도에 대해 보고함으로, 첫 실행 후 실행해야 한다.
◆파일 출력
- fstream 헤더 파일을 포함시켜야 한다.
- fstream 헤더 파일은 출력을 처리하는 ofstream 클래스를 정의한다.
- 하나 이상의 ofstream 변수 또는 객체를 선언할 필요가 있다. 일반적인 이름 짓기 관례를 준수하는 한, 사용자는 원하는 이름을 지정할 수 있다.
- std 이름 공간을 지정해야 한다. 예를 들면, ofstream과 같은 요소들에 대해 using 지시자 또는 std:: 접두사를 사용한다.
- 특정 ofstream 객체와 특정 파일을 연결시킬 필요가 있다. 그렇게 하는 한 가지 방법은, open() 메서드를 사용하는 것이다.
- 파일을 다루는 작업이 끝나면, close() 메서드를 사용하여 그 파일을 닫아야 한다.
- ofstream 객체를 << 연산자와 함께 사용하여 다양한 유형의 데이터를 출력할 수 있다.
- 출력을 위해 이미 존재하는 파일을 열면, 기본적으로 파일의 길이가 0바이트로 잘려서 파일 내용이 사라진다.
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
char automobile[50];
int year;
double price;
ofstream outFile;
outFile.open("carinfo.txt");
cout << "자동차의 이름을 입력하시오 : ";
cin.getline(automobile, 50);
cout << "자동차의 가격을 입력하시오 : ";
cin >> price;
cout << fixed;
cout.precision(2);
cout << "차 이름 : " << automobile << endl;
cout << "차 가격 : " << price << endl;
outFile << "차 이름 : " << automobile << endl;
outFile << "차 가격 : " << price << endl;
outFile.close();
}
◆파일 읽기
●iostream
●
'C++ > C++' 카테고리의 다른 글
8. 함수의 활용 ★ (0) | 2023.07.12 |
---|---|
7. 함수 - C++의 프로그래밍 모듈 (0) | 2023.07.10 |
5장 반복문과 cin 메모 (0) | 2023.07.01 |
4장 포인터, 배열, 포인터 연산 메모 (0) | 2023.06.26 |
[C++] 람다 함수 (0) | 2023.02.17 |