2

myC.cpp

#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
    freopen("input.txt","r",stdin); // All inputs from 'input.txt' file

    int n,m;
    cin>>n>>m;
    cout<<(n+m)<<endl;
    return 0;
}

ファイルには次のものinput.txtが含まれる場合があります。

入力.txt

10 20

コードをビルドして実行するコマンドライン -

g++ myC.cpp -o myC
myC

30ファイルから入力を取得して出力を生成しinput.txtます。

現在、同様にファイルから入力を取得するコマンドを探していますが、コード内で freopen() を使用することは避けたいと考えています。

こんな感じかも~

g++ myC.cpp -o myC  // To compile
myC -i input.txt    // To run with input
4

2 に答える 2

7

コマンドラインからプログラムを呼び出すときは、入力ファイルをプログラムにパイプする必要があります。次のプログラムを検討してください。

#include <stdio.h>

int main( void ) {

  int a, b;

  scanf( "%d", &a );
  scanf( "%d", &b );

  printf( "%d + %d = %d", a, b, ( a + b ) );

  return 0;
}

...「test.exe」としてコンパイルしたとします。次のように呼び出して、入力テキスト ファイルをパイプします。

./test.exe < input.txt
于 2013-07-08T17:07:12.747 に答える
0

それを行う単一のコマンドはありませんが (コンパイラーはコードを実行しません)、小規模なテストでは、ビルドが正しかった場合にコンパイルして実行する単一のコマンド ラインを実行する傾向があります。

g++ -o myC myC.cpp && ./myC input.txt

もちろん、ファイル名が引数として取られるようにプログラムを変更する必要がありますが、それは十分に単純なはずです。

于 2013-07-08T16:37:58.497 に答える