전체 글141 C 언어 파일 탐색 파일 스트림에는 현재 파일 내에서 어디를 읽거나 쓸지 나타내는 파일 위치 표시자(File Position Indicator)가 존재한다이를 통해 파일의 특정 위치로 이동하거나, 현재 위치를 확인할 수 있다 파일 스트림의 표시자파일 스트림에는 총 3개의 표시자가 존재한다표시자설명EOF (End of File)파일의 끝을 나타내는 표시자오류 (Error Indicator)파일 스트림에서 오류가 발생했음을 나타냄파일 위치 표시자 (File Position Indicator)현재 읽거나 쓸 위치를 나타냄 EOF 및 오류 표시자는 clearerr(FILE* stream)을 통해 초기화할 수 있다파일 위치 표시자는 rewind(), fseek(), ftell()을 사용하여 조작할 수 있다 파일 위치 조작 함수rew.. 2025. 4. 9. C의 파일 오류 처리 표준 오류 스트림 stderr오류 메시지를 출력하는 스트림이다. stdout과 달리 버퍼링을 사용하지 않고 즉시 출력되는 것이 특징이다. 오류 메시지는 즉시 출력되어야 하므로, stderr은 출력 속도를 보장하기 위해 버퍼링을 하지 않는다 printf()는 기본적으로 stdout(표준 출력)을 사용하므로 stderr을 직접 출력할 수 없다. 즉, stderr을 사용하려면 반드시 fprintf(stderr, ...)를 사용해야 한다#include int main(void) { FILE* file; /* 존재하지 않는 파일을 읽기 모드로 열기 */ file = fopen("non_existent_file.txt", "r"); if (file == NULL) { /* 표준 출.. 2025. 4. 9. C 언어 파일 입출력 C에서는 파일을 다루기 위해서는 운영체제가 제공하는 함수를 사용하거나 파일 스트림을 직접 읽고 쓰는 방식으로 구현해야 한다 파일 입출력 과정은 다음의 3단계로 이루어진다파일을 연다 (파일 스트림 가져옴)파일을 읽거나 사용한다 (파일 스트림 사용)파일을 닫는다 (리소스 정리) 파일 열기파일을 열기 위해 fopen을 사용한다FILE* fopen(const char* filename, const char* mode);filename: 열고자 하는 파일 이름 (경로 포함 가능)mode: 파일을 열 때 사용할 모드 (읽기, 쓰기, 추가 등)반환값: 파일 스트림 포인터 (FILE*), 실패 시 NULL 반환 파일 열기 모드는 다음의 종류들이 있다모드설명"r"읽기 전용 (파일이 존재해야 함)"w"쓰기 전용 (파일이 .. 2025. 4. 9. C 언어의 입력 처리 C에서 입력을 받는 방법에는 여러 가지가 있으며, 사용 목적과 안전성을 고려하여 적절한 함수를 선택해야 한다 한 글자씩, 한 줄씩, 한 데이터씩, 한 블록씩 입력을 받을 수 있으며 각 방식에는 장단점과 주의해야 할 사항이 있다 한 글자씩 입력 받기 getchar()getchar()를 사용하면 한 글자씩 입력을 받을 수 있다. 입력이 성공하면 해당 문자의 int 값을 반환하고, 입력을 종료하려면 EOF를 쓰면 된다. 종료될 경우 EOF를 반환한다EOF는 C 표준 값에서 음수 값을 가지며, 일반적으로 -1로 정의된다 만약 키보드를 통해 EOF 입력을 하고 싶다면 Windows에서는 Ctrl + Z, Unix/Linux/macOS 에서는 Ctrl + D 를 입력하면 된다#include int main(void.. 2025. 4. 9. C 서식 문자열 서식 문자열은 추가적인 메모리 할당 없이 데이터를 사람이 읽기 좋은 형태로 변환하여 출력 스트림(콘솔, 파일, 문자열 등)에 출력하는 역할을 한다 이를 통해 출력 형식을 세밀하게 제어할 수 있으며, 특히 수치 데이터나 문자열을 원하는 형태로 정렬하고 가공할 수 있다 서식 지정자 (Format Specifiers)C에서 printf() 및 관련 함수들은 다양한 서식 지정자를 제공한다서식 지정자설명%d, %i정수 (int)%u부호 없는 정수 (unsigned int)%f실수 (float, double)%c문자 (char)%s문자열 (char 배열)%p포인터 (메모리 주소)%e, %E지수 표기법 (Exponential)%g, %G자동 형식 (실수 or 지수 표기법 중 적절한 것 선택)#include int m.. 2025. 4. 9. C 언어 strtok() 함수의 작동 방식과 주의할 점 strtok() 함수는 내부적으로 정적 변수를 사용하여 문자열 상태를 유지하기 때문에, 호출 중간에 다른 문자열을 넣으면 예상치 못한 동작이 발생할 수 있다 이를 확인하기 위해 다양한 케이스를 실험해보았다 1. NULL이 아닌 새로운 문자열을 전달하는 경우strtok()가 호출 중간에 다른 문자열을 전달하면 어떻게 동작할까?#include #include int main(void) { /* 문자열 선언 */ char str1[] = "apple,banana,grape"; char str2[] = "cat,dog,elephant"; /* 첫 번째 문자열 토큰화 (apple까지만) */ printf("첫 번째 문자열 토큰화 결과:\n"); char *token = strtok.. 2025. 4. 9. 이전 1 2 3 4 5 ··· 24 다음 반응형