스트림이란 용어부터 공부 해야 겠네요 ㅠㅠㅋㅋ
스트림이란 바이트들이 순서대로 입출력 되는 논리적인 장비를 스트림이라고 하네요
스트림은 내부에 입출력 버퍼를 가지고 있으며 이 버퍼는 스트림에 의해 자동으로 관리된다고 하네요
스트림의 현재 상태는 FILE 이라는 구조체에서 기억한다고 하네요
struct _iobuf{
chat * _ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char * _tmpfname;
};
typedef struct _iobuf FILE;
FILE이라는 놈이 실제이구나 !! ^____^
여기서 잠시 CR/LF에 대해 공부 !!!
CR(Carriage return) / LF (Line feed)
Binary | Oct | Dec | Hex | Abbr | [a] | [b] | [c] | Description |
---|---|---|---|---|---|---|---|---|
000 1010 | 012 | 10 | 0A | LF | ␊ | ^J | \n | Line feed |
000 1101 | 015 | 13 | 0D | CR | ␍ | ^M | \r | Carriage return[g] |
ASCII Table from http://en.wikipedia.org/wiki/ASCII
오늘 처음으로 알게 되었네요 ^^
\n <--- 이 개행 문자는 다음 줄로 커서를 이동하는 문자이고
\r <--- 이 개행 문자는 앞줄로 커서를 이동하는 문자이다 .
자 그럼 printf 를 사용할때 \n 만 사용해도 \n\r 이거 와 같은 기능을 하는 이유는 멀까 ????
C 문자열 출력 함수들은 개행을 위해 확장열 LF(\n)를 사용하기 때문에 이와같이 된다 .
자 여기서 printf로 junghi 문자열을 hijung으로 바꿀려면 어떻게 해야될가요?
printf("aajung\rhi ") 이걸로 하면 될까요? 전 안되더라구요 이유는 모르겟네요 ㅠㅠ
환경은 Visual studio 2010 입니다 .
그래서 호기심에서 계속 해보니깐 printf("aajung\rhi\n");이렇게 하면 되더라구요 ㅠㅠ
puts("aajung\rhi") 하면 바로 되던데 ㅠㅠ 이유 아시는분이 알려주세요 ㅠㅠ
'Soft Ware > C 언어!!' 카테고리의 다른 글
fgets / fputs 사용하기 !!! (0) | 2012.01.30 |
---|---|
file open 과 fileclose 에 대해서 (0) | 2012.01.30 |
구조체 패딩에 대해 알아 보겠습니다 ㅠㅠ (0) | 2012.01.27 |
부동 소수점에 대해서 파헤쳐보았습니다 !!! (0) | 2012.01.27 |
realloc을 이용한 원형 리스트 입니다 (0) | 2012.01.13 |