【发布时间】:2018-04-04 20:57:51
【问题描述】:
我试图弄清楚如何能够将 .txt 文件作为命令提示符参数而不是用户输入来读取。如果我有程序
#include <iostream>
#include "cmdline.h"
using namespace std;
int main (int cnt, char * args[]) {
int a = cmdline_int(args, 1);
int b = cmdline_int(args, 2);
cout << "sum = " << a << " + " << b << " = " << a + b << endl;
return 0;
}
文件“cmdline.h”包含在哪里
#include <cstdlib>
#include <string>
using namespace std;
int cmdline_int( char* cmdline_a[], int n ) {
return atoi( cmdline_a[ n ] );
}
char cmdline_char( char* cmdline_a[], int n ) {
char c = cmdline_a[ n ][0];
return c;
}
我可以运行程序
./program 3 5
输出将是
总和 = 3 + 5 = 8
但是,如果我有一个文件 (textfile.txt) 仅包含列表形式的相同数字,即
3
5
并尝试将其运行为
./program
我明白了
分段错误
如果 textfile.txt 包含“3 5”,它会做同样的事情,尽管无论如何我使用列表形式的文本文件很重要。我需要更改什么以使“./program textfile.txt”具有与“./program 3 5”相同的输出?
我猜问题出在 int 主括号之间,我只是不确定具体是什么。
【问题讨论】:
标签: c++ command-line-arguments