c++ - 如何逐行读取文本文件然后解析一行中的字符?

标签 c++ parsing

我正在从文本文件中读取中缀表达式,我想将其转换为后缀表达式。

例如,文本文件中的内容

1+1
2+2

我一次一行地阅读表达式,如下

 char c;
 string readLine; 
ifstream txtfile("a1.txt");
 while ( getline (txtfile,readLine) ) // read line by line
    {
        cout << readLine << endl;

        // how can I set c to be the first character from the read line


         infix_to_postfix(stack, queue,c );

    }

我的问题是如何让变量 C 等于读取行中的第一个字符,以便我可以将其发送到我的 infix_to_postfix 函数?然后第二个字符..一直到行尾。

当第一行完全读取时,我想读取第二行并一次发送一个字符到我的 infix_to_postfix 函数。我希望我在这里说清楚了,谢谢!

最佳答案

对单个字符使用 get 方法:

char c;
std::ifstream txtfile("a1.txt");
while (std::getline(txtfile, readLine))
{
    while (txtfile.get(c))
        infix_to_postfix(stack, queue, c);
}

关于c++ - 如何逐行读取文本文件然后解析一行中的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19237998/

相关文章:

c++ - 检查套接字是否已在 mac os x 中连接

c++ - 计算 FUNPROB 的概率

json - 将 JSON 中的字符串(字符串数组)解析为 Swift 中的字符串数组

string - 解析具有不明确数据的地址

c++ - 我可以从一个 .so 中获取符号名称并创建另一个 .so 吗?

c++ - DirectX SDK 2010 年 6 月 : XAudio2 crashes on every app exit

java - SimpleDateFormat 解析错误的时间

parsing - 领域驱动设计——数据解析属于哪里

c# - DateTime.ParseExact - 为什么 yy 变成 2015 而不是 1915

c++ - 为什么 `this`等于0x0,导致我的程序崩溃?