Soft Ware/C 언어!!

파일 입/출력을 공부 하기전 스트림에 대해서 !!!

달려가보자 2012. 1. 30. 16:33

스트림이란 용어부터 공부 해야 겠네요 ㅠㅠㅋㅋ

스트림이란 바이트들이 순서대로 입출력 되는 논리적인 장비를 스트림이라고 하네요

스트림은 내부에 입출력 버퍼를 가지고 있으며 이 버퍼는 스트림에 의해 자동으로 관리된다고 하네요

스트림의 현재 상태는 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") 하면 바로 되던데 ㅠㅠ 이유 아시는분이 알려주세요 ㅠㅠ