프로그래밍/C언어

1.5.1 File Copying

seungdols 2011. 11. 7. 18:14

 

source code

 

#include <stdio.h>
 
 
 
/******** copy input to output; 1st version **********/
int main()
{
 int c;
 
 c = getchar();
 while( c != EOF )
 {
  putchar(c);
  c = getchar();
 }
 
 
 return 0;
}

!= 이 연산자의 관계는 "not equal to "라고 합니다. 즉 같지 않을 때. 같지 않으면

 

 무엇을 하냐면 keyboard로 입력된 값을 화면으로 보여준다. 즉 출력한다.

내부로 bit pattern <- 해석불가;;;;ㅎ 을 저장 한다.

 

char data type은 특별하게 문자 data를 저장한다. 그러나 정수형 타입인 int형도 사용 할 수있다.

여기서 int를 사용하는 이유는 미요하게 중요한 이유 때문이다.

 

문제점은 다른 것과 구별되는 것은 입력되는 끝의 data가 유효 한가이다. 라고 해석함.

 

해법은 getchar가 리턴하는 distinctive value 더 이상의 입력이 없으면 그 값은 혼동을 줄 수 없다. 어떤 문자와도.

 

이 값은 EOF라고 부른다. 뜻은 End of File 파일의 끝이다.

getchar가 리턴하는 값에 대비하여 큰 타입의 형을 선언 해야만 한다.

 

We can't use char since c must be big enough to hold EOF in addition to any possible char

char형의 타입은 EOF 값을 담을 만큼 충분히 크지 않기 때문에

Therefore we use int.

int형 타입을 사용했다.

 

EOF는 stdio.h 여기에 정의 되어 있다. 어느 char형과 같지 않는 특별한 값을 가지고 있다.

 

그리하여 우리는 symbolic constant를 사용한다. 그러면 프로그램에서 특별한 숫자값이 의존되지 않는다.

 

--오늘은 이정도로만..



 

미친 듯이 입력을 받다가 ctrl + z를 입력하는 순간 끝납니다.^^

반응형

'프로그래밍 > C언어' 카테고리의 다른 글

Exercise 1-6 , 1-7  (0) 2011.11.07
1.5.1 File Copying 2nd version  (0) 2011.11.07
1.5 Character Input and Output  (0) 2011.11.07
1.4 Symbolic Constants  (0) 2011.11.07
1.3 The for Statement  (0) 2011.11.07