[英]Checking stringstream line char by char C++
我会简短而简单。 在确保用户能够成功打开文件之后,我编写了以下代码来从inputFile中取一行。
string line;
int counter = 0;
DynIntStack stack;
while (!inputFile.eof())
{
getline(inputFile, line);
stringstream inputLine(line);
counter++;
//I NEED TO DO IT HERE
}
这将用于编写程序来检查输入cpp文件中的平衡paranthesis,我必须使用堆栈。 经验丰富的CS作业,据我所知,我已经检查了:)
计数器在每一行之后更新,如果它有一个开括号,则行号(计数器)将被推入堆栈,如果它是一个右括号,它必须从堆栈中弹出。 在这些之后,输出应该如下所示:
block: 3 - 3
block: 12 - 14
block: 10 - 14
block: 5 - 16
Syntax error in line 21.
但我不知道怎么检查我得到char的字符行。 如果找到开始或结束括号,我需要一个循环来检查字符并应用前面提到的内容。 如何通过char检查行char。
非常感谢你 :)
但我不知道怎么检查我得到char的字符行
这是你想要的吗?
string line;
int counter = 0;
DynIntStack stack;
while (getline(inputFile, line))
{
counter++;
for(size_t i = 0; i < line.length(); i++) {
// line[i] is i'th character
if(line[i] == '(') {
// do stuff
}
else if(line[i] == ')') {
// do stuff
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.