我在做一个项目,遇到了我认为是我忽略了一个简单的操作什么的。
问题的一个示例是从指定文件中查找“%”或“*”字符。
我会在找到它们后将它们压入堆栈,然后移动到文件中的下一个字符。
例如
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
}
}
所以基本上,如果对应于该字符,则将其保存在堆栈中。
我是一名优秀的程序员,十分优秀!