我有几个参数给我的程序和输入文件被重定向。我解析参数(使用argc和argv)和文件(使用cin)。但是,我无法显示重定向文件的名称。例如,论据是 -输入重定向文件名C++
./procsim -r 2 -f 4 -j 3 -k 2 -l 1 < gcc.100k.trace
和我的代码来解析参数是 -
for (int i = 1; i < argc; ++i)
{
if (argv[i][0] == '-')
{
if (!strcmp(argv[i], "-r"))
{
if (i < argc - 1)
{
pipeline_parameters[count++] = atoi(argv[i+1]);
R = atoi(argv[i+1]);
i = i+1;
}
}
else if (!strcmp(argv[i], "-f"))
{
if (i < argc - 1)
{
pipeline_parameters[count++] = atoi(argv[i+1]);
F = atoi(argv[i+1]);
i = i+1;
}
}
,并解析文件,我将CIN -
string line;
while (getline(cin, line))
{
address_arr.push_back(line);
}
我想阅读fie的名字,这里是gcc.100k.trace。我怎么做? P.S. - 我试过解析参数,但我无法找到它!
编辑: address_arr是int的向量。 pipeline_parameters是一个长度为5的int数组,用于存储参数。 R and F是存储参数的全局变量。
欢迎来到计算器!请尝试创建一个[Minimal,Complete和Verifiable示例](https://stackoverflow.com/help/mcve),因为示例中缺少信息,例如什么是pipeline_parameters或address_arr? – nikaza
我不认为你可以检索其内容被重定向到'stdin'的文件的名称。看看[这个答案到另一个SO帖子](http://stackoverflow.com/a/42382373/434551)。它可能会导致你找到你的问题的答案。 –