기본적으로는 솔루션이 더 큰 개념. 한개의 솔루션 안에 여러 프로젝트가 있는 것이다.
그래서 예를 들면 솔루션 이름은 lecture, 프로젝트 이름은 chapter1 이런 식인 게 좋다.
컴파일은 번역이고 빌드는 실행이다. 비슷비슷한 과정 같지만 컴파일을 해야 빌드가 된다. 그래서 컴파일에서 실패하면 빌드도 안 됨.
이렇게 나오면 성공한 것.
평생 cout만 쓰면 편하겠지만, 문자열만 출력하고 끝낼 거라면 프로그래밍을 배우는 의미가 없다. 계산기라던지 매크로라던지, 내가 할 작업을 대신 해줄 무언가를 만들어보고 싶은 게 우리가 프로그래밍을 배우는 이유.
#include <iostream>
#include <string>
using namespace std;
int main() {
// 정수형 변수 선언
int age = 25; // 초기값 25
int year; // 초기값 없음
// 실수형 변수 선언
float pi = 3.14f;
double largeDecimal = 12345.6789;
// 문자형 변수 선언
char grade = 'A';
// 문자열 변수 (C++ 표준 라이브러리 사용)
string name = "John";
// 불리언 변수
bool isStudent = true;
cout << "Age: " << age << endl;
cout << "Year: " << year << " (uninitialized, may contain garbage value)" << endl;
cout << "Pi: " << pi << endl;
cout << "Large Decimal: " << largeDecimal << endl;
cout << "Grade: " << grade << endl;
cout << "Name: " << name << endl;
cout << "Is Student: " << (isStudent ? "true" : "false") << endl;
// 상수 선언
const double gravity = 9.8; // 중력 가속도
cout << "Gravity: " << gravity << endl;
return 0;
}
그러니, 될 수도, 안 될수도 있다.
int year; 까지만 쓰면 어떻게 될까? 이건 컴파일러마다 다르다.
C style의 특성 상 초기화하지 않아도 쓰레기값이 임의로 들어갈 수도 있고, 어떤 컴파일러는 위 이미지처럼 아예 컴파일 에러를 내버리기도 한다. 이건 환경마다 조금씩 다르다.
중력가속도처럼 고정되어 바뀌지 않는 값 같은 게 있다면 const로 선언해주면 된다.
// 실수형 변수 선언
float pi = 3.14f;
double largeDecimal = 12345.6789;
위와 같이 float, double이 각각 선언되어 있다고 하자. 실수형은 유효숫자가 있기 때문에 float형은 유효숫자 뒤에 f까지 붙여주어야 하는 번거로움이 있다. 보통 float가 7~8자리 정도 되고 double이 15자리 정도. 컨벤션으로 고정된게 아니고 뭘 쓸지 잘 모르겠다면 double을 써주는 것이 편리하다.
int a = 10, b = 5
이렇게 쓸 수 있다. 비단 int가 아니어도 float, double도 마찬가지.
modular 라서 그렇다.
문자열을 입력할땐 cin 보다는 getline이 좀더 좋은거라고 알아두면 좋다.
cin의 c는 character인줄 알았는데 console이었다.
입력해달라는 문자열을 출력하면서 입력을 받는 getline 코드는 다음과 같은 식으로 작성한다.
// 문자열 입력
cout << "이름을 입력하세요: ";
getline(cin, name);
string 타입을 쓰려면 #include <string> 헤더를 추가해줘야 쓸 수 있다.
음수는 못 쓰지만 양수 범위 내에서 범위가 2배가 된다. -21억 ~ 21억 범위인 int를 unsigned로 선언하면 0 ~ 42억이 되는 셈.
// 1. 정수형 배열 선언
int numbers[5]; // 정수를 5개 저장할 수 있는 배열
// 2. 선언과 동시에 초기화
int initializedNumbers[3] = { 1, 2, 3 }; // 정수 배열을 선언하고 값 초기화
선언은 int a;
이고, 초기화는 a = 10;
이다. 그러니 int a = 10;
이면 선언하면서 값 초기화를 같이 해준 것.
이 오류같은 경우는 '너 이거 안쓰는데? 삭제해야 하는거 아녀?' 라고 하고 있다. 컴파일이 안되는 건 아닌데, 가급적이면 고치라는 메시지.