我有幾個參數給我的程序和輸入文件被重定向。我解析參數(使用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)。它可能會導致你找到你的問題的答案。 –