C ¾ð¾î¿¡¼­ stdinÀ¸·Î ¹ÞÀº ¹®ÀÚ¿­....

   Á¶È¸ 12697   Ãßõ 0    

a라는 이름의 c로 컴파일한 프로그램이 있고,

이를 실행하기 위해

터미널에서 ./a <test.txt 라는 형식으로 text.txt 파일을 파싱하는 프로그램을 만들었는데,

여기서 입력한 test.txt 라는 문자열을 프로그램 내부에서 변수로 사용하려고 하는데,

어떻게 해야하나요.

c언어는 너무 오랜만이라, 구글에

stdin으로 검색해봐도, 버퍼 지우는 fflush(stdin) 이런것 관련된 것만 나오고...

먼저 변수에서 사용하기 위해 print나 해보자는 생각으로

printf("%s", stdin);

이라고 하면 포인터 어쩌구라는 소리만 해대고,

그래서 %p라고 하면 주소값이 떡하니 나오고..

어떻게 해야하나요. 도움좀 주세요.

미리 감사합니다.
ªÀº±Û Àϼö·Ï ½ÅÁßÇÏ°Ô.
stdinÀº ±âº»ÀԷ¹öÆÛ·Î ¹Ù·Î º¯¼öó·³ »ç¿ëÀÌ ¾ÈµÇ´Â °É·Î ¾Ë°í ÀÖ½À´Ï´Ù.
scanf() µî ÀÔ·Â ÇÔ¼ö¸¦ »ç¿ëÇØ º¯¼ö¿¡ ÇÒ´çÇؾß
Ãâ·ÂÀÌ °¡´ÉÇÕ´Ï´Ù.
ALpha 2012-06
Ä¿¸Çµå¶óÀο¡ ¾Æ±Ô¸ÕÆ®·Î »ç¿ëÇϽǰŶó¸é


int main(int argc, char* argv[]) {
 //¾î¼±¸
 return 0;
}
ÂÊÀ¸·Î ã¾Æº¸½Ê½Ã¿ë..
ÀÌ·¯¸é ./a test.txt Çϸé argv ¿¡¼­ ³Ñ°Ü¹ÞÀº text.txt ¸¦ ÁöÁö°í ºº°í »î°í ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.

¿¹¸¦ µé¸é ÀÌ·¸°Ô µÇ³×¿ä..

°¼¸£¸ª: ~/temp > cat a.c
#include <stdio.h>
int main(int argc, char* argv[]) {

        printf("how many argument - %d \n", argc);
        printf("1 - %s \n", argv[0]);
        printf("2 - %s \n", argv[1]);
        return 0;
}

°¼¸£¸ª: ~/temp > ./a test.txt
how many argument - 2
1 - ./a
2 - test.txt
     
À̱â¹é 2012-06
°¨»çÇÕ´Ï´Ù..
À̸®µµ Ä£ÀýÇϽôٴÏ..
ÈæÈæ..
À̱â¹é 2012-06
¾Æ Á¦°¡ ¼³¸íÀ» À߸øÇ߳׿ä.
./a arg1 < test.txt Çü½ÄÀ¸·Î arg1Àº ¾î¶»°Ô ÁöÁö°í ºº°í ÇÒ ¼ö Àִµ¥,

µÚ¿¡ÀÖ´Â test.txt¸¦ »Ì¾Æ³»±â°¡ ¾î·Æ³×¿ä.

ÀÏ´Ü µÎºÐ ¸»¾¸ Âü°í ÇÏ¿©, Á» ´õ °øºÎÇغ¸°Ú½À´Ï´Ù.

µµ¿ò Áּż­ ´ë´ÜÈ÷ °¨»çÇÕ´Ï´Ù.
     
°û¼øÇö 2012-06
Redirection(<, >)Àº ¾ÕÀÇ Command°¡ RunÀÌ ¿Ï·áµÈ OutÀ» RedirectÇϹǷÎ,
¾ÕÀÇ Command(¿©±â¼­´Â a)¿¡¼­ test.txt¸¦ argument·Î °¡Á®¿À´Â°ÍÀº ºÒ°¡´ÉÇÕ´Ï´Ù.
±èµ¿½Ä 2012-06
#include <stdio.h>

int main(int argc, char* argv[])
{
char ch;
while(1) {
ch = getchar();
if (ch == -1) break;
printf("%c", ch);
}
return 0;
}

ÀÌ°É Ã£À¸½Ã´ÂÁö...

ÆÄÀÌÇÁ·Î ¹Þ¾Æ¼­ ¹º°¡¸¦ ó¸® ÇÏ·Á°í ÇÏ´Â°Í °°Àºµ¥...
ÆÄÀÌÇÁ°¡ Äֿܼ¡¼­ Á÷Á¢ ÀÔ·ÂÇÏ´Â °Å¶ó¼­ Á÷Á¢ ÀԷ¹޴ ÇÔ¼ö·Î ¹ÞÀ¸½Ã¸é µË´Ï´Ù.
´ÜÁö ÀÔ·ÂÀÌ ³¡³µ´Ù´Â ¹®ÀÚ Ctrl-Z ¸¦ È®ÀÎÇÏ¸é µÇ´Ï±î¿ä.

C ¸¦ ¼Õ¿¡¼­ ³»·Á³õÀºÁö ½Ê¿©³âÀÌ µÇ¾î¼­ °¡¹°°Å¸®´Âµ¥...
°£¸¸¿¡ ÄÄÆÄÀÏ Çغó׿ä.

ÁÖÀü°øÀÌ COBOL À̶ó¼­...COBOL ¸¸ 15³â °¡±îÀÌ »ç¿ëÇ߳׿ä..
Áö±ÝÀº JAVA ¸¦ »ç¿ëÇÏÁö¸¸,,,
¾ÆÁ÷ DELPHI ´Â ²À Áã°í ÀÖ½À´Ï´Ù.
     
±èµ¿½Ä 2012-06
Á¦°¡ Áú¹®À» À߸ø Çؼ® ÇÑ°Í °°³×¿ä..

./a arg1 < test.txt
ÀÌ·¸°Ô ÀÔ·ÂÇÑ °æ¿ì "<" ¿Í "test.txt" ´Â °û¼øÇö´Ô ¸»¾¸´ë·Î ÆĶó¹ÌÅͷΠ󸮵ÇÁö ¾Ê½À´Ï´Ù.
ÀÌ°Ç OS ·¹º§¿¡¼­ ó¸®Çϱ⠶§¹®¿¡ "./a" ¶ó´Â ÇÁ·Î±×·¥¿¡¼­´Â ÀÎÁöÇÏÁö ¸øÇÕ´Ï´Ù.

"test.txt" ÀÇ ³»¿ëÀº ÆÄÀÌÇÁ·Î 󸮵ǹǷΠȮÀÎÀº °¡´ÉÇÏÁö¸¸ ±×°Ç ÄַܼΠRedirect Çϱ⠶§¹®ÀÌÁÒ.

Á¤È®È÷ ¾î¶²°É ÇÏ·Á°í ÇϽôÂÁö¸¦ ¾Ë¸é Á»´õ Á¤È®ÇÑ ´äº¯ÀÌ °¡´ÉÇÒ°Í °°³×¿ä.
À̱â¹é 2012-06
¿©·¯ºÐµéÀÇ ´äº¯ °¨»çÇÕ´Ï´Ù.

¿ø·¡´Â < text.txt ¶ó°í ÀÔ·ÂÇÏ¿©, text.txt¶ó´Â ÆÄÀϾÈÀÇ ³»¿ëÀ» ÆĽÌÇÏ·Á°í Çߴµ¥,

±×·¡¼­ fgets(..., stdin);¸¦ ÀÌ¿ëÇÏ¿© text.txt ÆÄÀÏÀÇ ³»¿ëÀ» Àоî¿Àµµ·Ï Çß¾ú´Âµ¥,

±×³É text.txt ÀÚü¸¦ argument·Î ¹Þ¾Æ¼­ ÆÄÀÏÀ» ºÒ·¯¿À´Â ¹æ½ÄÀ¸·Î (»ç½Ç ¾ÆÁ÷ ã¾Æº¸Áö´Â ¾Ê¾Æ¼­ ¾î¶»°Ô ÇÒÁö´Â °áÁ¤ÇÏÁö ¸øÇßÁö¸¸..)

ÇÏ´Â ÆíÀÌ ³ªÀ»µíÇϳ׿ä.


redirectionÀ¸·Î ÇÏÁö ¾Ê°í,

±×³É ÆÄÀϸíÀ»  argumentÇϳª·Î ÀÔ·ÂÇؼ­ ó¸®Çϱâ·Î Çß½À´Ï´Ù.

°ü½É Á¤¸» °¨»çÇÕ´Ï´Ù.


QnA
Á¦¸ñPage 3625/5686
2015-12   1519507   ¹é¸Þ°¡
2014-05   4983446   Á¤ÀºÁØ1
2012-06   4380   ¹æoÈ¿o¹®
2012-06   5930   ±èÀº½Ä
2012-06   11818   CPDLC
2012-06   5384   ¹æoÈ¿o¹®
2012-06   6850   ¹æoÈ¿o¹®
2012-06   5792   ¾öû³­x
2012-06   4964   ¿ì¾Ó»Ñ¾Ó
2012-06   8156   ±èÁÖ¿ës
2012-06   6850   °¡ºü·Î±¸³ª
2012-06   12698   À̱â¹é
2012-06   14107   Ãֽÿµ
2012-06   4823   À±Ä¡¿­
2012-06   4458   Á¤ÀÇÇÑ
2012-06   6146   ±èÁöȯ1
2012-06   4863   ½Ì¾î¼Û¶óÀÌÅÍ
2012-06   12054   ½Ì¾î¼Û¶óÀÌÅÍ
2012-06   4592   ¿¥ºê¸®¿À
2012-06   4937   °¡ºü·Î±¸³ª
2012-06   5681   ½Ì¾î¼Û¶óÀÌÅÍ
2012-06   5643   NiteFlite9