2

我的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 回答