BOX-IT/C++ 9

[C++] (2) 파일 입출력

1. 파일 개방 - 표준 입출력 스트림 파일 - fopen - fgetc함수(하나의 문자를 가지고 오는 함수) - 위치 지시자 - EOF (-1) - fputs 함수(하나의 문자를 출력하는 함수) 2. 텍스트 파일과 바이너리 파일 3. +개방 모드, fseek, rewind, feof 함수 fopen함수를 통해서 파일을 개방하고 난 다음 실제로 입출력을 할 때는 입출력 함수를 사용한다. 입출력 함수엔 다양한 함수가 있다. 가장 기본적으로 사용할 수 있는 건 하나의 문자열을 입력하거나 출력하는 함수가 되는 것이다. 실제로 데이터를 파일로부터 입력을 시켜서 출력하는 프로그램을 만들려고 한다. FILE* fp; // 파일 포인터 선언 fp = fopen("a.txt", "r"); // fopen함수를 통해서 ..

BOX-IT/C++ 2022.05.16

[C++] 파일 개방과 입출력

'[혼공C_새로워진 이것인 C언어다.] 34강-파일 개방과 입출력' 강의를 보면서 정리한 필기자료임을 미리 밝힙니다. printf("hello"); 라고 입력하면 hello가 출력될 것이다. (main함수 선언이나 stdio.h가 모두 작성되어 있다고 가정하고 말이다.) 아무튼 hello란 문자가 출력되는 것 까진 좋은데 앞으로 이 데이터(hello)를 연산한 결과를 화면에만 띄우는 것에 그치지 않고 하드디스크로부터 가지고 올 수 있도록 해서 계속해서 활용할 수 있도록 해보자. 즉 파일 입출력은 하드디스크로부터 데이터를 가지고 오는 것이다.@ 1. 파일 개방 - 표준 입출력 스트림 파일 - fopen - fgetc함수 - 위치 지시자 - EOF (-1) - fputs 함수 2. 텍스트 파일과 바이너리 파..

BOX-IT/C++ 2022.05.16

[C++] strcpy는 뭐고, 왜 쓰는 걸까?

1. strcpy의 정의 strcpy는 string copy의 줄임말이다. string은 문자열을 뜻하고 copy는 복사한다란 뜻이다. 여기서 문자열이 무엇인지 잠시 살펴보자면, a같은 글자 하나를 c언어에선 문자라고 한다. b라는 글자 하나또한 문자가 된다. 그럼 c도 문자고, d도 문자고, l도 문자일 것이다. a와 b같은 문자 하나하나가 여러개 모여서 단어를 형성한 것을 문자열이라고 한다. apple은 여러개의 문자, 즉 a와 p와 l과 e라는 문자가 모여서 만들어진 문자열이다. banana도 여러개의 문자들이 모여서 만들어진 하나의 문자열이라고 할 수 있다. 결론: strcpy는 apple과 같은 문자열을 복사한다는 뜻이다. 그럼 여기서 의문이 드는게 왜 문자열을 복사하는 strcpy가 생겼을까하..

BOX-IT/C++ 2022.04.16

C언어에서 '100< X <200' 은 잘못된 표현이다.

C 언어에서 100 < X < 200을 표현하고 싶다면 (100 < X) && (X < 200) 으로 표현해야 한다. 왜냐면 C 언어에서 100 < X < 200은 100 < X 부터 계산을 해주고, 그다음에 X < 200을 계산하기 때문이다. 이게 무슨 문제냐. 만약에 X 값이 50이라면 100 < 50은 False니까 0을 반환할 것이다. C언어에서 False는 0을 반환하고 True면 1을 반환하니까. 그 후에는 X < 200을 계산해준다. 아까 0이 반환됐으니까 0 < 200이 계산된다. 200은 0보다 큰 게 맞다. 즉 true니까 1이 반환된다. X의 값이 50이 아닌 150이라면 어떻게 될까? X값이 150이라면 100 < X는 100 < 150이 된다. 150은 100보다 크니까 True다..

BOX-IT/C++ 2022.04.10

[C++] #include <stdio.h>는 뭐고, 왜 쓰는 걸까?

# include 는 뭐하는 아이일까? c언어를 쓰면 항상 맨 위에 #include 를 써줘야 한다. 왜일까? 그리고 이 아이는 도대체 뭐 하는 아이인걸까? #include 를 하나씩 쪼개서 그 이유를 알아보고자 한다. #과 include 란? # 은 hash mark라고 부른다. include는 한글로 해석하면 '포함한다'는 뜻이다. #include는 내가 어떤 걸 포함해서 쓰겠다고 선언하는 것을 뜻한다. 그런데 뭘 포함해서 어떻게 쓴다는 걸까? 바로 include 옆에 있는 stdio.h를 포함해서 쓰겠다는 거다. stdio.h 란 stdio.h 는 standard input output 약자다. stdio.h가 단순히 글자처럼 보일 수도 있지만 얘는 보통 글자가 아니다. stdio.h는 바로 냉장고..

BOX-IT/C++ 2022.04.04

[C++] Scanf 함수의 정의와 사용 방법

scanf 함수는 입력을 받는 함수다. 입력을 받는 다는 게 잘 와닿지 않을 수 있어서 출력함수인 printf를 통해 입력을 받는다는 게 무슨 의미인지 설명하고자 한다. #include int main() { printf("Hello Wordl"); return 0; } 위의 코드를 실행 시키면 Hello Wordl가 출력된다. 즉 실행만 시키면 바로 Hello Wordl가 출력되도록 미리 코드를 짜놓은 거라고 볼 수 있다. 그런데 미리 입력한 게 출력되도록 나오는 게 아닌 사용자가 입력한 값이 출력되도록 나오게 하는 방법은 없을까? 예를 들자면 사용자가 30을 입력하면 30이 출력되도록 하는 거다. 50을 입력하면 50이 출력되게 할 수도 있을 것이다. 이해를 돕기 위해 아래 코드를 봐보도록 하자. #..

BOX-IT/C++ 2022.03.27

C 포인터 개념을 소설로 쉽게 써서 정리한 글

양주종 강사님의 하단의 유뷰트 영상을 보면서 필기한 글임을 미리 알려드립니다. https://www.youtube.com/watch?v=LtmJm068muw&list=PLlDAu2fzBjC6HjVmhYVlSMYSk4NAJiMnc&index=20 c포인터 강의를 들으면서 필기를 하고 있는데 후반부에 정신을 차리고 보니 소설을 쓰면서 필기하고 있는 나 자신을 발견했다. 천생 문과생이 이과 과목 공부하면 이런 일도 생기는 거 같다. 도대체 어떻게 필기를 소설로 바꿀 수 있는지 궁금하다면 맨 하단을 보면 답이 나온다. 필기를 이런 식으로 할 수도 있다는 걸 나도 이번에 처음 알았다. 이렇게 소설 써서 올리면 분명 나중에 흑역사라면서 후회할 거 같기도 한데 C 포인터 개념이 어려우신 분들께 조금이나마 도움이 되었..

BOX-IT/C++ 2022.03.22

[C++] 컴파일, 컴파일러, 바이트코드(바이너리코드)는 무슨 뜻일까?

1. 컴파일 정의 컴파일 = 사람이 이해할 수 있는 언어를 컴퓨터가 이해할 수 있는 언어로 바꿔주는 것 우리가 '안녕'이란 문자를 입력해서 상대방한테 보내면 '아, 상대방이 나한테 인사했구나'라고 이해할 수 있다. 하지만 컴퓨터는 '안녕'이란 언어를 모른다. 컴퓨터는 0과 1이란 언어만 아는 아이다. 가령 컴퓨터한테 Hello나 hi나 안녕같은 문자를 입력하면 컴퓨터는 이 사람이 도대체 무슨 소리를 하는 걸까?라고 생각할 것이다. 그러니 안녕을 0과 1로 바꿔줘야 컴퓨터는 안녕을 이해할 수 있다. 그러니까 영국인한테 한국어로 안녕이라고 말하면 이해를 못하니까 안녕 대신 hello로 바꿔서 이야기하는 것처럼 컴퓨터한테도 안녕 대신 001101011 이런식으로 0과 1로 이루어진 코드를 입력해야 컴퓨터는 아..

BOX-IT/C++ 2022.03.01