1

私は C の初心者です。私のプログラムでは、ユーザーはコマンド ラインから引数を追加します。この引数は、「こんにちは、お元気ですか」などの文字列になります。この文字列から char を次々と読み取りたいと思います。この文字列のサイズは不明です。プログラムを実行する例 (Windows) は次のとおりです: test "Hello, how are you"

何かのようなもの

#include <stdio.h>

int main()
{
  char c;  

  while ((c = getchar()) != EOF)
    putchar(c);
  return 0;
}

文字 c は入力文字列から読み取る必要がありますが、これは作成できません。私はそれを明確にしたことを願っています。

ご協力ありがとうございました。

4

2 に答える 2

1

getchar標準入力から読み取るため、プログラムは標準入力から1文字ずつ読み取り、それらを標準出力に出力します。間違いが 1 つあります。通常はであるため、cとして宣言する必要があります。intEOF-1


ただし、コマンド ライン引数を出力しようとしています。それを達成するために、文字ごとに行う必要はありません。main次のような引数で versionを使用する必要があります。

int main(int argc, char* argv[])

プログラムを呼び出すと、test "Hello, how are you"すでにargv[1]引数文字列になっていますHello, how are you。この文字列を直接使用できます。

コードは提供しませんが、printf文字列を印刷するために使用できます。すべての文字を取得したい場合は、ループを使用して string から取得しますargv[1]

于 2013-10-05T07:57:50.873 に答える
-1

C のコマンド ライン パラメーターは、メイン関数に渡されます。次のシグネチャを使用してメイン関数を宣言する必要があります。

int main(int argc, char* argv[])

次にargc、コマンド ライン パラメーターの数、argvは各パラメーターを含む文字列の配列です。

次に、単純なループで各文字にアクセスできます。

int i;
for (i = 0; argv[1][i] != 0; i++) {
    char c = argv[1][i];
    // Use c as you need
}
于 2013-10-05T07:56:01.607 に答える