2012-12-07 2 views
1

현재 원하는대로 프로그램을 작동 시키려고합니다. 나는 현재 명령 줄에서 무제한의 텍스트 파일을 열고 표시 할 수있는 시점에 있습니다. 이 부분을 확장하여 사용자가 표시된 텍스트의 서식을 지정하는 문구를 입력하게하십시오. 나는 이전에 유사한 질문을 올렸지 만 좋은 대답을 얻었지만 getopt()를 사용할 수 없다. 명령 줄에서 "-w"와 숫자, 즉 "-w5"와 "-s"가없는 번호를 검색하는 방법은 무엇입니까? 그것들은 제가 탐지 할 수 있기를 원하는 두 가지 것입니다. 저는 성명서가 내 친구들에게서 가장 짧은 프로그램을 원하기는했지만, 지금은 끝내기를 원합니다. 어떤 아이디어? 여러 개의 if 문이 내 친구의 생각이었습니다. 개인적으로 이것이 불필요하다고 생각하지만,해야 할 일이 있다면 ... 다른 사람이 아이디어를 가지고 있다면 정말 유용 할 것입니다. 필자의 프로그램이 커맨드 라인에서 그 두 문자를 탐지하기를 원한다. 나는 C 언어에 익숙하지 않다. (나는 단지 몇 가지 프로그램을 만들었지 만) 배워야 할 예민한 사람이다. 나는 인터넷 검색을 시도해 본적이 있지만, C를 처음 접하면서, 내가 필요한 것을 찾고자한다. 다른 모든 텍스트와 특수 용어는 어렵습니다.명령 줄에서 문구를 어떻게 스캔합니까?

아무 것도 유용 할 것입니다. 감사합니다.

#include <stdio.h> 
#include <stdlib.h> 


int main(int argc, char **argv) 
{ 

int l = 1; 
    while(l != argc) 
{ 
     FILE *fp; 


    fp = fopen(argv[l], "rb"); 
    l++; 

if (fp != NULL) 
{ 
    int i = 1; 
    do 
    { 
     i = fgetc(fp); 
     printf("%c",i); 
     printf(" "); 
    } 
    while(i!=-1); 
    fclose(fp); 
} 
else 
{ 
    printf("Error.\n"); 

} 
    } 
} 
void scanningForWS(int argc, char **argv) 
{ 





} 
+0

왜'getopt는 사용할 수 없습니다에 대한 GNU documentation()'? – duskwuff

+0

그는 Windows에 있기 때문에? 사용자 ID는 다르지만 토론되는 옵션은 [getopt()가 올바르게 이해되고 있습니까?] (http://stackoverflow.com/questions/13767888/am-i-understanding-getopt-correctly)와 동일합니다.). –

+0

'getopt source at & t public domain'에서 Google (또는 선택한 다른 검색 엔진)을 검색하십시오. 여러분은 1985 년에 AT & T에 의해 퍼블릭 도메인에 배치 된'getopt()'버전의 소스 코드를 발견 할 것이다. 프로토 타입을 사용하지 않았던 표준 C로 변환해야하지만, 너는 잘 가야한다. –

답변

1

당신은 (파일의 맨 끝에) 자신의 libc.h 파일에 plan9의 ARGBEGIN 및 ARGEND 매크로 봐야한다, (arg(3) 참조, 그 사용의 예를 들어) 어떻게하는지 볼 수.

이 메커니즘의 suckless 구현을 확인해 볼 수 있습니다.이 플래그는 잘못된 플래그가 발견 된 후에도 인수를 구문 분석하는 버전을 다시 구현했지만 어디에도 게시되지 않았습니다. 게시 할 수 있습니다. 그게 필요하다면).

0

명령 줄 인수는 argv에 있고 argv는 배열이므로 내부에서 특정 요소를 찾으려면 원하는 요소를 얻을 때까지 각 요소를 검사하는 것이 유일한 방법입니다. 직접 작성하지 않으려는 경우 C가 search.h에 'lfind'라는 메소드를 가지고있는 것처럼 보입니다. 그것을 사용하는 방법의 Here is an example. 희망이 도움이 : 3. 또한

, 그것은

관련 문제