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
可能包含:
INPUT.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
答案 0 :(得分:2)
从命令行调用输入文件时,需要将输入文件传递给程序。请考虑以下程序:
#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
答案 1 :(得分:0)
虽然没有单一命令可以执行此操作(编译器不会执行您的代码),但对于小型测试,我倾向于运行一个命令行,如果构建正确,它将编译并执行:
g ++ -o myC myC.cpp&amp;&amp; ./myC input.txt
当然,这需要更改程序,以便将文件名作为参数,但这应该足够简单。