我正在研究一个项目,遇到了我认为是我忽略了一个简单的操作或什么的。
问题的一个例子是从指定文件中查找'%'或'*'字符。
当它们被找到时,我会将它们推到堆栈上,然后移动到文件中的下一个字符。
例如
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 while循环? getline而不是singlechar?
答案 0 :(得分:0)
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保存在堆栈中。