2012-02-26 5 views
1

初めてのポスター。誰かが私にこれを助けてくれることを望んでいた。 5.10節では、Kernighanは文字列をテキスト行に再印刷するプログラムの例を示します。だから私はこれを私のフォルダに "find"として保存した後、cmdに入り、次にフォルダに入り、次に "-x whatever"をタイプした。しかし何らかの理由で ' - 'は登録されておらず、 "-x何でも"を1つの長い文字列として扱うだけです。誰にもこれが起こっている理由を手がかりにしていますか?ありがとう。Kernighan/Ritchieのセクション5.10コマンドライン引数/オプションのパラメータ

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#define MAXLINE 1000 

int getline(char *s, int lim) 
{ 
int i = 0; 

while(i < lim - 1 && (*s = getchar()) != EOF && *s++ != '\n') 
    i++; 

if(*s == '\n') 
    *s++ = '\n', i++; 

*s = '\0'; 
return i; 
} 
int main(int argc, char *argv[]) 
{ 

char line[MAXLINE]; 
long lineno = 0; 
int c, except = 0, number = 0, found = 0; 

while(--argc > 0 && (*++argv)[0] == '-') 
    while(c = *++argv[0]) 
     switch(c) { 
     case 'x': 
       except = 1; 
       break; 
     case 'n': 
       number = 1; 
       break; 
     default: 
       printf("find: illegal option %c\n", c); 
       argc = 0; 
       found = -1; 
       break; 
     } 

if(argc != 1) 
    printf("Usage: find -x -n pattern\n"); 
else 
    while(getline(line, MAXLINE) > 0) { 
     lineno++; 
     if((strstr(line, *argv) != NULL) != except) { 
       if(number) 
        printf("%ld:", lineno); 
       printf("%s", line); 
       found++; 
     } 
    } 

printf("Found: %d", found); 
return found; 
} 

答えて

3

は、あなたが代わりに

find "-x whatever" 
+0

find -x whatever 

を入力する必要があり、私は に入力すると、 'whatever' を-x見つけ、それを見つけるの言う:パラメータの形式が正しくありません。私が入力した場合 'find -x"何でも " ファイルが見つからないと言います - -X –

+0

あなたのプログラムを" find "以外のものに呼び出すこともできます。すでに誤って起動しているfindコマンドがあります。 – Sean

+0

Lol。私がやったことは、私がプログラムを作っていなかったことと、 "find"は古いコマンドだったと思います。ハハ。ありがとう、たくさんの人。 –

関連する問題