我正在做一个项目,遇到了我认为自己正在忽略一个简单的操作之类的事情。

问题的一个示例是从指定文件中查找'%'或'*'字符。

找到它们时,我将它们向下推到堆栈上,然后移至文件中的下一个字符。

例如

ifstream fin;
fin.open( fname );

while ( fin.get(singlechar)){      //char singlechar;

if (singlechar == '(' || singlechar == ')' || singlechar == '{' || singlechar == '}' || > singlechar == '[' || singlechar == ']')

    Stack::Push(singlechar);    //push char on stack


什么是做到这一点的好方法? for循环,while循环吗?用getline代替singlechar?

最佳答案

existing question已经有一个答案。这里:

char ch;
fstream fin(filename, fstream::in);
while (fin >> noskipws >> ch) {
    cout << ch; // Or whatever
    //In your case, we shall put this in the stack if it is the char you want
    if(ch == '?') {
        //push to stack here
    }
}


因此,基本上,您可以将char保存到堆栈中(如果与此相对应)。

09-26 08:45