我正在做一个项目,遇到了我认为自己正在忽略一个简单的操作之类的事情。
问题的一个示例是从指定文件中查找'%'或'*'字符。
找到它们时,我将它们向下推到堆栈上,然后移至文件中的下一个字符。
例如
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保存到堆栈中(如果与此相对应)。