私は実際にargc、argv []を使ってファイルを読むことはしませんでしたが、プログラムの要件によって私はそれらを使うことができます。私の問題は、ヘッダーファイルのファイルを読み込み、mainの代わりに処理していることです。 main.cppの外側でargc、argv []入力を使用する方法はありますか?私のmain.cppファイルの外にargc、argvを渡すことはありますか?
"input.txt"などをargvに置き換えて使用したいヘッダーファイルです。
ではなく、output.txtと
void expression::convertToPostFix()
{
{
ofstream fout("output.txt");
stack<char> stack;
stringstream postfix;
while (!obj.empty()) {
stack.push('(');
fout << "InFix is:\t";
while (1) {
if ((obj.front() != ';') && (obj.front() != '.'))
{
const char current = obj.front();
cout << current;
fout << current;
obj.pop();
if (isspace(current)) {
}
else if (isalnum(current)) {
postfix << current;
}
else if ('(' == current) {
stack.push(current);
}
else if (isOperator(current)) {
char rightOperator = current;
while (!stack.empty() && isOperator(stack.top()) && precedence(stack.top(), rightOperator)) {
postfix << ' ' << stack.top();
stack.pop();
}
postfix << ' ';
stack.push(rightOperator);
}
else if (')' == current) {
while (!stack.empty() && '(' != stack.top()) {
postfix << ' ' << stack.top();
stack.pop();
}
stack.pop();
postfix << ' ';
}
}
else
{
obj.pop();
break;
}
}
while (!stack.empty() && '(' != stack.top()) {
postfix << ' ' << stack.top();
stack.pop();
}
stack.pop();
pfix = postfix.str();
postfix.str("");
cout << "\nPost fix is:\t" << pfix << endl << endl;
fout << "\nPost fix is:\t" << pfix << endl << endl;
}
}
}
のここで使いたい(それはここにも使用されたい)
expression::expression()
{
ifix = "";
pfix = "";
last = 0;
char chr;
ifstream fin;
fin.open("input.txt");
while (!fin.eof())
{
fin >> chr;
if (!fin.eof())
{
if (chr != ' ')
{
obj.push(chr);
}
}
}
}
'argv [1]'を最初の引数を必要とする関数に渡しますか?もちろん、 'argc> = 2'を確認してください。 –
ところで、一般的なコーディングガイドラインは、ヘッダファイルのソースファイルと宣言にコードを配置することです。 –