【发布时间】:2017-10-02 11:18:22
【问题描述】:
做一个项目分配,我似乎无法让我的命令标志工作。一直在网上寻求帮助,但在这个问题上找不到太多。我的老师从来没有解释过这是什么或怎么做,所以我只是根据我在网上找到的东西做事。任何解决方案或解释将不胜感激。
#include<fstream>
#include<iostream>
#include<vector>
#include<sstream>
using namespace std;
int main(int argc, char *argv[])
{
if(argc != 0)
{
for (int i = 0; i < argc; i++)
{
ifstream file1(argv[i]);
string arg1 = argv[i];
int counter = 0;
int counter2 = 0;
string longest, word;
char letter;
vector<string> arrayWord, numString;
vector<int> largestNum;
stringstream ss;
if(file1.is_open() == false)
{
cout << "File Not Found\n";
continue;
}
else if (arg1 == "c")
{
while (!file1.eof())
{
letter = file1.get();
if(letter != ' ')
{
word = word + letter;
letter = file1.get();
counter++;
}
else if (letter == ' ')
{
arrayWord[counter2] = word;
largestNum[counter2] = counter;
ss << largestNum[counter2];
numString[counter2] = ss.str();
counter2++;
word.clear();
}
}
longest = arrayWord[0];
for (int i = 0; i <= counter2; i++)
{
if (largestNum[counter2] < largestNum[counter2 + 1])
{
longest = arrayWord[counter2 + 1] + "(" + numString[counter2 + 1];
}
else if (largestNum[counter2] == largestNum[counter2 + 1])
{
longest = longest + "(" + (numString[counter2 + 1]) + ", " + arrayWord[counter2 + 1] + "(" + numString[counter2 + 1];
}
else
{
longest = arrayWord[counter2] + "(" + numString[counter2];
}
}
cout << longest << endl;
continue;
}
else
{
cout << "Program is running with an invalid command" << endl;
continue;
}
}
}
return 0;
}
【问题讨论】:
-
任何解决方案或解释...什么?
-
我无法让我的命令标志工作,我希望有人能解释为什么它不工作。
-
欢迎来到 Stack Overflow!当问题陈述只是“它不起作用”时,很难提供解决方案。请edit您的问题更完整地描述您预期会发生什么以及这与实际结果有何不同。请参阅 How to Ask 以获取有关什么是好的解释的提示。
标签: c++ command-line-arguments flags