Starbucks Caramel Frappuccino
본문 바로가기
  • 그래 그렇게 조금씩

C5

File IO / 파일 입출력 C언어로 파일을 읽고 쓰는 방법에 대해 정리해본다. 프로세스에서 다뤄지는 데이터는 메모리에 있기 때문에, 프로그램이 종료되면 소멸해버린다. 영구적으로 데이터를 저장하려면 서버에 저장하거나, 로컬에 저장해야 하는데 여기서는 로컬 파일로 저장하는 것을 다룬다. 파일(File) 파일이 뭐냐고 물어보면 파일이 파일이지.. 라고 대답하는 불상사를 막기 위해 간단하게 파일의 개념부터 알아보자. 파일은 컴퓨터에서 '데이터를 저장하는 논리적 단위'이다. 데이터가 디지털 형태로 기록되어 있고, 저장장치에 영구적으로 저장될 수 있다. 흔히 보는 텍스트,이미지,음악,비디오,코드 등 다양한 형태의 정보를 파일에 담을 수 있다. (소켓 통신에서 소켓도 네트워크 통신을 위한 파일이다!) 파일은 다양한 형태와 구조를 가질 수 있는.. 2024. 4. 7.
C 미니 프로젝트 회고 C언어 기초 학습을 마치며, 후반부에 팀원들과 함께 프로젝트를 진행했다. 워낙 짧은 기간의 프로젝트였지만 나름대로 성장의 요소가 있었다고 생각하고 추후 프로젝트를 진행할 때 더 잘할 수 있도록 회고를 간단하게 진행하려고 한다. 어떤 프로젝트? 프로젝트의 목표는 c언어를 활용해서 간단한 프로그램을 만드는 것이었다. (순수 C, Visual Studio) 주제는 자유였고, 우리 팀은 'DB를 활용해 특정 장소 주변의 맛집을 추천해 주는 프로그램'을 만들었다. 우리는 항상 점심 메뉴 고민에 시달리는 사람들이니까..! 프로젝트 기간은 주말을 제외하면 약 4~5일 정도로 굉장히 짧은 기간이었다. 실제로 빡세게 작업한 건 대략 3일 정도인 듯.. 마음가짐 아무래도 새로운 사람들, 새로운 언어, 새로운 개발 환경에서.. 2024. 3. 2.
C - 문자열, 다차원 배열(2차원, 문자열 배열) C에서는 String 타입이 없다. (C++에는 표준 라이브러리로 존재한다.) 그렇기 때문에 '문자' '배열'을 통해서 문자열을 구현한다. (말그대로 문자열이다 ㅋㅋ) NULL 종료 문자열 문자(char)는 1개지만, 문자열은 문자가 여러개이기 때문에 어디까지인지 알기 위해 종료 문자열 개념을 사용한다. 문자열의 끝에는 항상 널 문자 '\0' 가 들어간다. (아스키 코드상 0) _ 빈 공간은 0으로 초기화 된다는 말. 이는 널 문자의 자리를 꼭 마련해 줘야 한다는 뜻과 동일하다. 종료 지점을 알려주지 않으면 메모리 주소 침범이 일어날 수 있기 때문이다. 'a'는 char타입으로 1바이트 이지만, "a"는 1바이트 + 종료문자열 1바이트로 문자열 2바이트이다. 문자열 입력 함수 표준 입력장치인 키보드로부터.. 2024. 2. 18.
C - Array 1차원 배열 우리는 프로그램에서 다양한 종류의 수많은 데이터를 관리해야 한다. 가장 처음 나온 개념은 '변수'였다. 하지만 데이터가 많아지면서 하나하나 변수를 선언하는 것이 너무 비효율적이었다. 따라서 '같은 타입의 데이터'를 연속적으로 묶어서 관리하면 더 효율적이겠다! 해서 나온 개념이 바로 배열이다. 추가적으로 이제 다양한 타입의 관련된 데이터를 묶어서 관리하기 위해 '구조체'도 등장하고, 함수까지 같이 묶어서 관리하기 위해 '클래스'도 등장한다.(클래스는 C++에서 사용 가능하다. C에서는 구조체만 존재함) 클래스를 통해 객체지향 프로그래밍의 구현이 이루어졌다. (C는 절차, 함수형 프로그래밍 언어이다.) 배열 Array 배열은 하나의 이름으로 참조되는 같은 타입의 연속적인 메모리 공간을 의미한다. 하나의 이름.. 2024. 2. 18.
C- Pointer 포인터 개념 및 활용 (포인터 변수) 목차 바로가기 🚀 01. C에 대한 첫인상 02. 메모리와 프로세스 03. 포인터란? 04. 포인터 자료형 05. 포인터 변수 06. 주소 연산자 & 07. 포인터 연산자 * 08. 포인터 변수의 사이즈 09. 포인터 변수의 타입 10. 포인터와 배열 11. 문자열 포인터 12. 문자열 상수 포인터 13. Call by Value, Call by Reference 14. 포인터 반환 15. const 지정자 🤔 C에 대한 첫인상 Python, Swift, Java를 배우다 드디어 C언어를 학습하게 되었다. 막 엄청나게 복잡하고 문법도 괴랄 할 줄 알았는데 다행히? 막상 해보니 그 정도는 아닌 것 같다..ㅋㅋㅋ 확실히 최신 언어들이 C언어 기반이 맞구나 싶은 부분들도 많았다. 예전에는 언어 하나라도, 하나.. 2024. 2. 17.