문자 단위 입출력 함수
문자 출력 함수 : putchar, fputc
1 2 3 4 5 | #include<stdio.h> int putchar(int c); int fput(int c, FILE * stream); // 파일 입출력도 가능하다. | cs |
문자 입력 함수 : getchar, fgetc
1 2 3 4 5 | #include<stdio.h> int getchar( void ); int fgetc(int c, FILE * stream); // 파일 입출력도 가능하다. | cs |
문자열 출력 함수 : puts, fputs
1 2 3 4 5 6 7 | #include<stdio.h> int puts( const char * s); int fputs(const char * s, FILE * stream); // 파일 입출력도 가능하다. // puts 함수는 자동 개행 하지만 fputs 은 개행하지 않는다. | cs |
문자열 입력 함수 : gets, fgets
1 2 3 4 5 6 7 | #include<stdio.h> char * gets (char * s); char * fgets(char * s, int n, FILE * stream); // 파일 입출력도 가능하다. | cs |
버퍼링(Buffering)이란 ?
버퍼링의 이유는 데이터 전송의 효율성과 관련이 있다.
키보드나 모니터와 같은 외부 장치와의 데이터 입출력은 생각보다 시간이 걸리는 작업이다. 따라서 버퍼링 없이 키보드가 눌릴 때 마다문자의 정보를 목적지로 이동시키는 것 보다 중간에 메모리 버퍼를 둬서 데이터를 한데 묶어서 이동시키는 것이 보다 효율 적이고 빠르다.
=> 창고에 물건을 나르는 경우 손으로 하나씩 나르는 것 보다. 손수레에 가득 채워서 나르는 것이 보다 빠르고 효율적이다.
출력버퍼를 비우는 fflush함수
1 2 3 4 5 | #include<stdio.h> int fflush (FILE * stream); | cs |
입력 버퍼 비우기
ClearLineFromReadBuffer(); // \n 이 읽혀질 때 까지 입력버퍼에 저장된 문자들을 지우는 함수 이다.
문자열의 길이를 반환하는 함수 : strlen
strlen(함수) ;
문자열을 복사하는 함수들 : strcpy, strncpy
strcpy(str2, str1 ); // str1의 문자열을 str2에 복사
strncpy(str2, str1, sizeof(str2) );
// str1의 문자열을 str2에 복사하되, str1의 길이가 매우 길다면, sizeof(str2) 가 반환한 값에 해당하는 문자의 수 만큼만 복사를 진행하라 .
문자열을 덧붙이는 함수들 : strcat, strncat
strcat :
만약 str1 = "first~" 이고 str2 = "second" 이면
strcat(str1, str2 ); 는 str1의 문자열 뒤에 str2 의 문자열을 복붙 해준다. 즉, first~second 가 된다.
strncat(str1, str2, 8); // str2의 문자열중 최대 8개를 str1의 뒤에 덧붙여라