2017-12-06 3 views
0

이것은 cmd에서 텍스트 파일을 읽는 방법입니다. 그것은 제약 조건입니다. 내가 파일의 라인 수를 읽을 수 있도록 내가 달성하기 위해 노력하고있어Cant에서 cmd를 통해 입력 할 때 파일 이름을 읽음 (args [1]을 통해)

>gcc -std=c99 myproject.c -o myproject 
>myproject<1.txt 

문자열로 파일 이름 "1.TXT"입니다. 나는 솔루션의 무리를 통해보고 그들 모두는 내가이 작업을 수행 할 때 변수는 argv [1] 그러나 제안 :

int main(int args, char*argv[]) { 
printf("File: %s\n", argv[1]); } 

이가 null 인쇄합니다.

args는 1을 제공하고 argv [0]은 myproject를 제공합니다. 다른 어떤 시도를 할 수 있을지 모르겠습니다. 모두 주어진 입력 파일에서 줄 수를 얻고 싶습니다. 도와주세요. 감사!

+2

왜 거기에'<'를 넣었습니까? 그것을 제거하십시오. – tkausl

+0

@tkausl 안녕하세요,이 스크립트가 프로젝트를 읽는 방법입니다. – PhastOfTheFuture

+0

'myproject <1.txt'는'myproject'에 어떤 인수도 넘겨주지 않습니다. 'myproject 1.txt'는 않습니다. –

답변

2

리다이렉션 (<)을 사용하면 표준 입력에서 프로그램에 데이터를 제공합니다 (프로그램에서 키보드로 입력 한 것처럼 데이터를 볼 수 있습니다). 매개 변수 만 전달하려는 경우 리디렉션을 삭제하면됩니다.

myproject 1.txt 

... 당신은 단지 '카운트 라인'은 숙제 인 경우, 당신이 올바른 방법으로 파일을 처리하고 확인 명령 wc -l에 시도해하려는 경우 : 사용 fscanf,는 fgetc , fputs, fputc, ... '표준 입력'대신에 scanf, gets, getc, putc ...

+0

파일 이름 만 제공하지만 프로그램의 나머지 부분은 정지하므로이 기능이 작동하지 않습니다. – PhastOfTheFuture

+2

'프로그램의 나머지 부분'에 문제가있을 수 있습니까? (위에서 말한 코드는 '파일 이름을 출력합니다'라는 의미입니다.) – DDS

+0

답변이 수정되었습니다 – DDS

관련 문제