num1 op num2 만 계산되므로,

stack 를 이용한 infix to postfix 를 적용한 후,

깔삼한 계산기를 두들겨 볼까,,



'D.B. > Code Lang.' 카테고리의 다른 글

C# exception  (0) 2016.04.04
C] AVL Tree demo  (0) 2009.12.14
C] A operate B 형 사칙연산 계산기  (0) 2009.10.14
C] fflush()  (0) 2009.09.20
Li] 리눅스 명령  (0) 2009.09.10
Li] Ubuntu  (0) 2009.09.10

 fflush( stdin );
 
scanf 를 통하여
abc def  라는 입력을 할 경우,
abc 끝에는 문자열의 끝을 의미하는 null character인 ' \0 '이 삽입된다.

따라서 def 대신 '\0'이 입력되어 버그가 발생


출처 : MSDN Library (링크)


fflush

Flushes a stream.

int fflush( 
   FILE *stream 
);
stream

Pointer to FILE structure.

fflush returns 0 if the buffer was successfully flushed. The value 0 is also returned in cases in which the specified stream has no buffer or is open for reading only. A return value of EOF indicates an error.

crt_fflush.c
#include <stdio.h>
#include <conio.h>
int main( void )
{
   int integer;
   char string[81];
   // Read each word as a string.
   printf( "Enter a sentence of four words with scanf: " );
   for( integer = 0; integer < 4; integer++ )
   {
      scanf_s( "%s", string, sizeof(string) );     
      printf( "%s\n", string );
   }
   // You must flush the input buffer before using gets.
   // fflush on input stream is an extension to the C standard
   fflush( stdin );  
   printf( "Enter the same sentence with gets: " );
   gets_s( string, sizeof(string) );
   printf( "%s\n", string );
}



fflush는  버퍼내용을 지울때 사용된다!

라고 생각 하고 있었다.

그저 단순하고 막연하게 생각하고 있었달까.

그런 것 이었다.


그런데 오늘 또 한가지 배우게 된것같아 남기고 싶다. 우후.


fflush 란 버퍼의 내용을 지운다기 보다는 비운다는게 맞는 표현 같다.

그러니까 버퍼의 내용을 그냥 지우는것보다는 다른 내용을 품고 있다고

말하고 싶은것이다.!


일단 버퍼 부터 말하겠다.

버퍼란 입력 하거나 출력할때 사용되는데

입력 할때마다 처리하는것 보다는 한번에 모와서 일을 하는게 능률적이기 때문에

그 저장공간을 따로 두어 사용하게 된다.

그공간을 버파라 하겠다.


프로그래밍을 할떄 입력버퍼와 출력버퍼가 있겠는데

이 입력버퍼 와 출력버퍼를 비울때에 fflush 란 함수가 사용된다

근데 이 함수란 놈이 이두놈에게 접근할때

다르게 사용 된다는 사실!!


즉 입력버퍼에 대해 사용 할때에는

입력버퍼의 내용을 버려서 버퍼를 깨끗하게 만든다!!


히지만. 출력 버퍼에 대해 사용할때에는

출력버퍼의 내용을 출력을 해버리고 꺠끗하게 만든다!!


이런것도 모르고 사용했다니. =ㅛ=

암튼 그런 ;; 것이었다; ㅎ


'D.B. > Code Lang.' 카테고리의 다른 글

C] AVL Tree demo  (0) 2009.12.14
C] A operate B 형 사칙연산 계산기  (0) 2009.10.14
C] fflush()  (0) 2009.09.20
Li] 리눅스 명령  (0) 2009.09.10
Li] Ubuntu  (0) 2009.09.10
Li] 리눅스 기본 명령어  (0) 2009.09.10
Visual Studio 6.0 에서 탭 정렬 단축키

블록 설정한 후에 [shift+tab]으로 전 라인을 왼쪽으로 붙인 다음에 [alt+f8] 으로 단계별 탭 정리

잊어먹지 좀 말자

+ Recent posts