[C언어 강좌] #17-3 콘솔 입출력과 파일 입출력

프로그래밍 강좌/C 2022. 1. 17. 02:16

안녕하세요 파일입니다. 저번에 이어 파일 입출력을 하는 방법에 대해 계속 알아봅시다! 콘솔 입출력과 파일 입출력편은 오늘이 마지막입니다. 달려보아요~ fread() 함수와 fwrite() 함수 3번째 이야기 하는것이지만 파일은 텍스트 파일과 바이너리 파일로 나누어진다고 했습니다. 지금까지 앞에서 학습한 함수들은 전부 텍스트모드에서 작동합니다. 지금까지 배운 함수들론 순수한 이진파일 (0과 1로만 이루어진)을 적어낼 수 없습니다. 텍스트 모드로 적히기 때문에 텍스트만 적을 수 있죠. 그러나 바이너리로 읽기/쓰기를 할 수 있는 함수를 배우면 달라집니다. $cf ) binary : $ 2진법의 이제 바이너리 파일의 파일 입출력을 지원하는 함수를 다뤄봅시다. 이들에는 fread() 함수와 fwrite() 함수가..

Article Thumbnail
[C언어 강좌] #17-2 콘솔 입출력과 파일 입출력

프로그래밍 강좌/C 2022. 1. 13. 01:02

저번 편에선 파일 출력을 하는 소스를 간단하게 실습해보았고 스트림, 파일스트림에 대한 개념 fopen() 을 통해 파일 스트림을 생성 & 파일을 여는것 등을 알아보았습니다. 오늘은 파일 입출력 과정에서 사용되는 함수에 대해 다뤄보겠습니다. fopen() 함수와 fclose() 함수 먼저 파일을 열고 닫는 fopen() 함수와 fclose() 함수에 대해서 공부해보겠습니다. 아래 표는 fopen 함수의 원형입니다. 함수 원형 설명 #include FILE* fopen(const char * filename, const char * mode) 파일 스트림을 생성하고 파일을 연다 실패 : NULL 반환 fopen() 함수는 함수의 인자로 filename(파일 경로)과 mode(파일 열기 모드)를 전달 받아 파..

Article Thumbnail
[C언어 강좌] #17-1 콘솔 입출력과 파일 입출력

프로그래밍 강좌/C 2022. 1. 8. 23:05

안녕하세요 파일입니다. 오늘은 본격적으로 파일 입출력에 대한 이론과 간단한 예제를 다뤄볼겁니다. 참고로 이번편부터 새롭게 알아야할 개념들이 늘어서 포인터 편처럼 머리가 아파질 수 있습니다.. 개인적인 느낌으로는 포인터의 경우 개념은 알만했는데 응용이 어렵다면 여긴 개념은 어려운데 응용하는건 그리 어렵지 않습니다. C언어에 대한 고지가 얼마 남지 않았으니 조금만 힘내봅시다. 화이팅! 콘솔 콘솔(console)은 본래 대형 컴퓨터 시스템과 연결되어 데이터를 입력하는 장치 또는 입력된 데이터를 처리하여 결과를 출력하는 장치를 의미합니다. 여기서의 콘솔은 키보드나 모니터와 같은 표준 입출력 장치를 의미하며, 콘솔 입출력은 키보드에서 데이터를 입력받고 모니터에 데이터를 출력하는것을 말합니다. 그렇다면 파일 입출력..

Article Thumbnail
[C언어 강좌] #16-2 문자열 표준 함수와 기타 표준 함수

프로그래밍 강좌/C 2022. 1. 4. 00:51

sscanf() 함수와 sprintf() 함수 우리가 지금까지 C언어에서 필수적으로 사용해온 함수로 scanf() 함수와 printf() 함수가 있습니다. 이번에 알아볼 함수는 scanf()와, printf() 함수 이름 앞에 s를 붙인 sscanf() 함수와 sprintf() 함수 입니다. 함수 원형 설명 #include int sscanf(const char * s1, const char * s2, ...) 메모리(문자열)에서 데이터를 입력받음 성공 : 데이터의 개수 반환 #include int sprintf(const char * s1, const char * s2, ...) 메모리(문자열)에 데이터를 출력(저장) 성공 : 문자열의 길이 반환 *위 함수의 인자중에 ...은 함수의 인자가 많이 있을 ..

Article Thumbnail
[C언어 강좌] #16-1 문자열 표준 함수와 기타 표준 함수

프로그래밍 강좌/C 2022. 1. 3. 03:35

이전에 문자열에 대해 배운적이 있습니다. 프로그램을 만들면서 문자열을 다루는 상황이 많게 되므로 문자열은 상당히 유용한데요. C언어에서 문자열을 구현하는 방법 2가지 다시 리마인드하고 넘어가자면 "Hello" 라는 문자열이 있다면 1. 배열을 통한 문자열 char string[] = "Hello" 와 같은 형식으로 선언하고 각 배열 요소 string[0] = 'H', string[1] = 'e'.. string[5] = '\0' (널문자)가 문자인 것으로 구현됩니다. 2. 포인터를 통한 문자열 char * string = "Hello" 와 같은 형식으로 선언하고 "Hello"라는 문자열이 읽기 전용 메모리 공간에 할당되며 string이라는 char형 포인터 변수가 "Hello"라는 문자열의 시작주소를 가..

Article Thumbnail
[C언어 강좌] #15 공용체와 열거형

프로그래밍 강좌/C 2021. 12. 28. 19:02

안녕하세요 파일입니다. 저번 구조체편에 이어서 공용체와 열거형입니다. 구조체를 제대로 이해하셨다면 이번에 새로배우는 공용체는 구조체와 사용방법이 거의 동일하기 때문에 어렵지 않게 익힐 수 있습니다. 또한 열거형도 그렇게 어려운 내용은 아니니 걱정하지 않으셔도 됩니다. 그럼 바로 시작해봅시다. 공용체 앞에서 배운 구조체처럼 사용자 정의 자료형에는 또 '공용체' 라는것이 있습니다. 공용체는 선언 형태와 사용 형태가 구조체와 거의 동일합니다. 그럼 공용체는 무엇일까요? 공용체의 의미는 그룹으로 묶여진 여러 개의 멤버 변수들 중에 가장 큰 메모리 공간을 '공유' 해서 사용하는 것 입니다. 밑줄쳐진 저 공유한다는 부분이 구조체와의 매우 큰 차이점이라고 할 수 있겠습니다. 단순히 말로만은 이해가 어려으므로 그림을 ..

Article Thumbnail
[C언어 강좌] #14-2 구조체(Structure Type)

프로그래밍 강좌/C 2021. 12. 28. 02:25

포인터편에서 함수를 호출할때 두가지 방법인 값에 의한 호출(Call by Value), 주소에 의한 호출(Call by Reference) 를 배웠었습니다. 일반 변수의 값, 주소를 매개변수로 넘길 수 있었듯 구조체의 경우에도 구조체 변수의 값, 주소를 매개변수로 넘길 수 있습니다. 그리고 배열의 경우에는 배열을 매개변수로 넘길때 배열의 이름 자체가 주소고, 매개변수로 int a[]와 같이 써줘도 컴파일러에서 int * a와 같은 포인터로 자동변환하기 때문에 어떻게하든 주소에 의한 호출만 가능했었는데요. 과연 구조체는 여기서 어떻게 될까요? 한번 알아보겠습니다. 구조체 변수를 이용한 값에 의한 호출 #include struct pos { int x; int y; }; void CallbyValue(str..

Article Thumbnail
[C언어 강좌] #14-1 구조체(Structure Type)

프로그래밍 강좌/C 2021. 12. 23. 00:44

안녕하세요 파일입니다. 드디어 지겹던 포인터가 끝나고 새로운 강좌명으로 상쾌한 시작을 할 수 있게 되었습니다 ! * 하지만 포인터는 포인터가 끝난뒤에도 항상 어디서나 등장합니다.. 여기서도 나와요 오늘 배워볼것은 구조체(Structure Type)입니다. 만약에 '학생1' 이 있고 이름이 '홍길동' 이라면 이것을 프로그래밍으로 표현할때 어떻게 하면 좋을까요? #include int main(){ char * student1 = "홍길동"; printf("학생 1의 이름은 : %s 입니다.", student1); return 0; } 저번에 배운 포인터 문자열을 활용하면, 대충 이렇게 하면 되겠죠? 근데 학생을 관리하려면 이름만 알아선 부족합니다. 예를 들어서 학번도 있을꺼고, 고등학생이라면 학년, 반도 ..

Article Thumbnail