전체 글848 파일입출력2 int fputc(int c, FILE *stream); //문자 출력 int fgetc(FILE *stream); //문자 입력 int fputs(const char* s, FILE *stream); //문자열 출력 char * fgets(char* s, int n, FILE *stream); //문자열 입력 예전에는 stream부분에 표준 입출력을 의미하는 stdin이나 stdout을 인자로 전달함으로써 키보드와 모니터를 대상으로 입출력을 진행하였는데, 매개변수의형이 의미하듯이 매개변수 stream에 FILE 구조체 포인터를 인자로 전달하여 파일대상의 입출력을 진행할 수 있다. #include int main() { FILE *fp = fopen("simple.txt", "wt"); if(fp==NU.. 2021. 2. 7. 파일 입출력1 파일의 이동 경로가 되는 다리를 가리켜 '스트림(Stream)'이라 한다. 즉 프로그램과 파일 사이에 스트림을 형성해야 데이터를 주고 받을 수 있다. 프로그램과 파일사에이 스트림이 형성된 것은 파일로부터 데이터를 읽어들일 준비가 됬다는 것이다. #include FILE *fopen(const char *filename, const char *mode); ->성공시 해당 파일의 FILE구조체 변수의 주소 값, 실패시 NULL반환 함수의 첫번째 인자로는 스트림을 형성할 파일의 이름을,. 두 번째 인자로는 형성할 스트림의 종류에 대한 정보를 문자열의 형태로 전달한다. 그러면 이 함수는 해당 파일과의 스트림을 형성하고 스트림정보를 FILE구조체 변수에 담아서 그 변수의 주소 값을 반환한다. FILE이라는 이름의.. 2021. 2. 6. 재귀 함수 재귀는 자료구조와 알고리즘에 있어서 매우 중요한 요소이다. 재귛마수란 함수 내에서 자기 자신을 다시 호출하는 함수를 의미한다. void Recursive(){ printf("Recursive call!\n"); Recursive(); //나 자신을 재호출 } 완료되지 않은 함수를 다시 호출하는 것이 가능하다. Recursive함수가 내부적으로 다시 호출이되면 복사본이 생긴다. 즉 함수가 호출되면 해당 함수의 복사본을 만들어서 실행하는 구조이다. Recursive함수를 실행하는 중간에 다시 Recursive함수가 호출되면, Recursive함수의 복사본을 하나 더 만들어서 복사본을 실행하게 된다. 실제로 함수를 구성하는 명령문은 CPU로 이동이 되어서(복사가 되어서) 실행이 된다. 그런데 이 명령문은 얼마.. 2021. 2. 5. 구조체 구조체(structure)라는 것은 하나 이상의 변수(포인터 변수와 배열 포함)를 묶어서 새로운 자료형으로 정의하는 도구이다. 예를 들어보자. 마우스의 좌표정보를 저장하고 관리한다고 가정하면, int xpos; //마우스의 x좌표 int ypos; //마우스의 y좌표 이둘은 함께하기 때문에, 즉 독립된 정보를 표현하는 것이 아닌, 마우스의 위치라는 하나의 정보를 표현한다. 결국 마우스의 현재 위치 정보를 출력하기 위해서는 저 위에 두변수에 저장된 값을 동시에 참조해야한다. 또한 동시에 갱신되어야 한다 . 그리고 둘중 하나라도 소멸이 된다면 나머지 하나는 의미없는 변수가 되어버린다. 결국 이둘의 변수를 묶기 위해 구조체를 사용한다. struct point { int xpos; int ypos; }; 위의 .. 2021. 2. 4. 자료구조와 알고리즘 이해 자료구조 : 데이터의 표현 및 저장방법 선형구조 : 리스트, 스택 큐 비선형구조 : 트리, 그래프 파일구조 : 순차파일, 색인파일, 직접파일 단순구조 : 정수, 실수, 문자, 문자열 알고리즘 : 표현 및 저장된 데이터를 대상으로 하는 문제의 해결 방법 예를 들면 int arr[10] {1, 2, ...}; //초기화되었다고 가정 for(idx= 0; idx 2021. 2. 3. 문자열 입력 함수 헤더파일 string.h에 선언된 문자열 관련 함수를 설명한다. size_t = unsigned int 이다. 즉 부호없는 정수이다. size_t strlen(const char *a); ->전달된 문자열의 길이를 반환하되, 널 문자는 길이에 포함하지 않음 #include #include void Remove(char* str) { int len = strlen(str); //널문자는 길이에 포함하지않음 만약 good가 입력한다고 가정 //g o o d \n 0 이 저장되어있는것인데 , 널길이를 포함하지않기 때문에 5가반환 str[len - 1] = 0; //널문자는 길이에 //str[5-1] = 0; 은 str[4] 즉 인덱스값기준으로 4에 있는 것 \n을 제거하는 것 } int main(){ char.. 2021. 2. 2. 이전 1 ··· 135 136 137 138 139 140 141 142 다음