XCode를 사용하고 있는데 명령 줄 인수로 전달 된 파일을 열려고하고 해당 파일의 명령 줄 인수로 전달 된 줄 수를 출력하려고합니다. XCode에서 내 주장은 "test.rtf"와 "5"입니다. 내 Xcode 프로젝트 폴더와 같은 폴더에 내 RTF로 이것을 시도파일 열기 및 C 언어로 출력
line 1 test
line 2 test
line 3 test
line 4 test
line 5 test
line 6 test
line 7 test
line 8 test
line 9 test
line 10 test
및 실행이 디버그 폴더 : 내 RTF는 것 같습니다.
#include <stdio.h>
#include <stdlib.h>
#define CORRECT_PARAMETERS 2
int main(int argc, char *argv[])
{
int x;
if (argc != CORRECT_PARAMETERS) {
printf("Wrong number of parameters inputted.");
}
else {
FILE *inFp; /*declare a file pointer */
if ((inFp = fopen(argv[0], "r") == NULL)) {
fprintf(stderr, "Can't open file");
exit(EXIT_FAILURE);
}
else {
for (x = 1; x <= argv[1]; x++) {
while ((x = fgetc(inFp)) != EOF) {
printf("%c", x);
}
}
}
fclose(inFp);
}
}
내가 내 코드가 명령 줄에서 라인 입력의 수를 출력 정확하지 않을 수 있습니다 알고 있지만 난 그냥 파일을 여는의 시작 부분의 작업을 얻을 수 없습니다 내 코드입니다. 출력되는 내용 :
Wrong number of parameters inputted.
감사합니다.
for 루프는'x'를 테스트하지만 while 루프는 항상 루프의 조건 부분이 테스트되기 전에'x = EOF'를 보장합니다. 따라서 'EOF'의 정의에 따라 for 루프는 한 번 실행되고 종료되거나 무한 루프를 반복합니다. –
좋은 답변, @ 톰. +1 -하지만 argv [1] 대신 argv [2]를 사용하도록 제한 할당을 수정했습니다 (이미 언급했지만이 인스턴스를 발견하지 못했습니다). – paxdiablo