1

現在、プログラムを希望どおりに動作させようとしています。現在、コマンド ラインから任意のテキスト ファイルを開き (無制限に)、それらを表示できるようになりました。これを拡張して、表示されるテキストをフォーマットするフレーズをユーザーに入力してもらいたいと思います。以前に同様の質問を投稿し、いくつかの素晴らしい回答を得ましたが、getopt() を使用できません。コマンドラインで「-w」と数字、つまり「-w5」と「-s」を数字なしでスキャンする方法は他にありません。これらは、私が検出できるようにしたい唯一の2つのことです。if ステートメントは気にしません。友人の中で最短のプログラムを望んでいましたが、この時点では、それを実行したいと思います。何か案は?複数の if ステートメントは友人のアイデアでした。個人的には不要だと思いますが、それは私がしなければならないことです... 他の誰かが何かアイデアを持っているなら、それは本当に役に立ちます. コマンドラインからこれらの2文字をプログラムに検出させたいだけです。私は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)
{





}
4

2 に答える 2

1

libc.hファイル (ファイルの最後) にあるplan9 の ARGBEGIN および ARGEND マクロを調べて、それがどのように行われているかを確認する必要があります (使用例については、arg(3)を参照してください)。

または、このメカニズムの無愛想な実装を確認することもできます。これは非常に優れています (間違ったフラグが見つかった後でも引数を解析するバージョンを再実装しましたが、どこにも公開されていません。必要に応じて公開できます)。それ)。

于 2012-12-08T00:38:16.073 に答える
0

コマンド ライン引数は argv にあり、argv は配列であるため、その中の特定の要素を見つける唯一の方法は、必要な要素が得られるまで各要素を確認しながら繰り返し処理することです。自分ですべてを書きたくない場合は、C の search.h にこれを行う「lfind」というメソッドがあるようです。使用方法の例を次に示します。それが役立つことを願っています:3。

また、そのためのGNUドキュメント

于 2012-12-08T05:39:40.503 に答える