コードが同じコマンドライン引数を2回出力するのはなぜですか?

DoABarrelRoll94

プログラムに3つの引数を渡しました。これらはすべてテキストファイルです。ARG1:1つのARG 2:2つのARG 3:3

ARG 1が2回印刷されるのはなぜですか?

#include <iostream>
#include <fstream>
using namespace std;

int main(int argc, char *argv[])
{
if(argc < 2)        //check if files exist 1st
{
    cout << "usage: " << argv[0] << " <filename>\n";
}
else        //proceed if files exist
{
    for(int x = 1; x < argc; x++)       //while x < the argument count, read each argument
    {
        ifstream infile;
        infile.open(argv[x]);
        if(!infile.is_open())     //check is file opens
        {
            cout << "Could not open file." << endl;
        }
        else        //if it opens, proceed
        {
            string s;
            while(infile.good())
            {
                infile >> s;        //declare string called s
                if(s[s.length()-1] == ',')      //if the end of the arg string has a ',' replace it with a null
                {
                    s[s.length()-1] = '\0';
                }
                cout << s;
                if(x != (argc -1))
                {
                    cout << ", ";
                }
            }
        }
    }
    cout << endl;
}
return 0;
}

このコードは以下を出力します:

1、1、2、3

しゃきばもしり

あなたのバグ

            cout << s; // here
            if(x != (argc -1))
            {
                cout << ", ";
            }

直し方

            cout << s;
            s = ""; // fix
            if(x != (argc -1))
            {
                cout << ", ";
            }

ストリームをs文字列に2回入れるだけです。それでおしまい。


あなたの目的のためのショートコード:

    std::ostringstream oss;
    for( std::size_t index = 1; index < argc; ++ index ){
        oss << std::ifstream( argv[ index ] ).rdbuf() ? assert(1==1) : assert(1==0);
    }
    std::cout << oss.str();   

出力

one  
two  
three  

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

このオープンソフトウェアコードが同じコマンドライン引数を2回実行するのはなぜですか?

分類Dev

updateコマンドが同じppaを表示するのはなぜですか?

分類Dev

Intellijではなくても同じscalaコードがコマンドラインで正常に機能するのはなぜですか?

分類Dev

このコードが惑星以外のコマンドライン引数で失敗するのはなぜですか?

分類Dev

異なるデバッガーが同じ関数に対して異なるアセンブリコードを出力するのはなぜですか?

分類Dev

コマンドライン引数の宣言がセグメンテーション違反を引き起こすのはなぜですか

分類Dev

フラグpを指定したsed置換コマンドが変更された出力を2回出力するのはなぜですか?

分類Dev

「ランダムキーコード」がたまに同じキーを作成するのはなぜですか?

分類Dev

bowerがJSONをコマンドラインに出力するのはなぜですか

分類Dev

ENV変数を変更して同じコマンドでエコーすると、新しい値が表示されないのはなぜですか?

分類Dev

ifステートメントがコマンドライン引数を無視しているのはなぜですか?

分類Dev

Dockerfileで同じRUNコマンドを使用すると、イメージ間でレイヤーサイズが異なるのはなぜですか?

分類Dev

この同じコードが異なるマシンで2つの異なるfp結果を生成するのはなぜですか?

分類Dev

C#がコマンドライン引数を部分的にエスケープ解除しているように見えるのはなぜですか?

分類Dev

vbcがコマンドラインを操作するのはなぜですか?

分類Dev

同じマスク、バージョン、エラー訂正を使用したqrコードのドット分布が異なるのはなぜですか?

分類Dev

ユーザーが最初のコマンドを入力した後、このメッセージが2回出力されるのはなぜですか?

分類Dev

同じGolangコードの出力が異なるのはなぜですか?

分類Dev

このJavaコードが2つの引数を出力するのはなぜですか?

分類Dev

「*」コマンドの出力がブートするのはなぜですか?

分類Dev

コマンドラインでcが小数点なしで出力されるのはなぜですか?

分類Dev

コマンドラインでcが小数点なしで出力されるのはなぜですか?

分類Dev

ToolStripMenuItem.Clickイベントハンドラーが同じコンテンツを表示するのはなぜですか?

分類Dev

異なるPythonバージョンで同じコードを実行すると異なる出力が得られるのはなぜですか?

分類Dev

Bash:コマンドライン引数を解析するスクリプトでevalとshiftが使用されるのはなぜですか?

分類Dev

並列コマンドが「Starting」と「Finished」を同時に出力するのはなぜですか?

分類Dev

ドメインコンテキストのFindByIdentityが引数のローカルマシン名を無視するのはなぜですか?

分類Dev

同じコマンドライン引数に複数のパラメータを渡す方法は?

分類Dev

同じコマンドを発行すると、pts / gnome-terminalよりもttyでより多くの出力が作成されるのはなぜですか?

Related 関連記事

  1. 1

    このオープンソフトウェアコードが同じコマンドライン引数を2回実行するのはなぜですか?

  2. 2

    updateコマンドが同じppaを表示するのはなぜですか?

  3. 3

    Intellijではなくても同じscalaコードがコマンドラインで正常に機能するのはなぜですか?

  4. 4

    このコードが惑星以外のコマンドライン引数で失敗するのはなぜですか?

  5. 5

    異なるデバッガーが同じ関数に対して異なるアセンブリコードを出力するのはなぜですか?

  6. 6

    コマンドライン引数の宣言がセグメンテーション違反を引き起こすのはなぜですか

  7. 7

    フラグpを指定したsed置換コマンドが変更された出力を2回出力するのはなぜですか?

  8. 8

    「ランダムキーコード」がたまに同じキーを作成するのはなぜですか?

  9. 9

    bowerがJSONをコマンドラインに出力するのはなぜですか

  10. 10

    ENV変数を変更して同じコマンドでエコーすると、新しい値が表示されないのはなぜですか?

  11. 11

    ifステートメントがコマンドライン引数を無視しているのはなぜですか?

  12. 12

    Dockerfileで同じRUNコマンドを使用すると、イメージ間でレイヤーサイズが異なるのはなぜですか?

  13. 13

    この同じコードが異なるマシンで2つの異なるfp結果を生成するのはなぜですか?

  14. 14

    C#がコマンドライン引数を部分的にエスケープ解除しているように見えるのはなぜですか?

  15. 15

    vbcがコマンドラインを操作するのはなぜですか?

  16. 16

    同じマスク、バージョン、エラー訂正を使用したqrコードのドット分布が異なるのはなぜですか?

  17. 17

    ユーザーが最初のコマンドを入力した後、このメッセージが2回出力されるのはなぜですか?

  18. 18

    同じGolangコードの出力が異なるのはなぜですか?

  19. 19

    このJavaコードが2つの引数を出力するのはなぜですか?

  20. 20

    「*」コマンドの出力がブートするのはなぜですか?

  21. 21

    コマンドラインでcが小数点なしで出力されるのはなぜですか?

  22. 22

    コマンドラインでcが小数点なしで出力されるのはなぜですか?

  23. 23

    ToolStripMenuItem.Clickイベントハンドラーが同じコンテンツを表示するのはなぜですか?

  24. 24

    異なるPythonバージョンで同じコードを実行すると異なる出力が得られるのはなぜですか?

  25. 25

    Bash:コマンドライン引数を解析するスクリプトでevalとshiftが使用されるのはなぜですか?

  26. 26

    並列コマンドが「Starting」と「Finished」を同時に出力するのはなぜですか?

  27. 27

    ドメインコンテキストのFindByIdentityが引数のローカルマシン名を無視するのはなぜですか?

  28. 28

    同じコマンドライン引数に複数のパラメータを渡す方法は?

  29. 29

    同じコマンドを発行すると、pts / gnome-terminalよりもttyでより多くの出力が作成されるのはなぜですか?

ホットタグ

アーカイブ