从文本中读取方程式

Read equation from text

本文关键字:方程式 读取 文本      更新时间:2023-10-16

你好,我正在制作一个程序,它使用链表、堆栈和队列将中缀转换为后缀并求解方程。我已经为堆栈和队列链表制作了一个推送、拉取等。但是,我遇到的问题是在字符和浮点之间进行转换。

当我从文本文件中读入时,我将等式转换为字符串,简单的等式,如 2+3/(5+1)。我的推送函数接收一个字符,拉取返回一个字符。我不知道首先要做什么是如何将这些字符串转换为字符/浮点数。我编写了这个测试代码,看看typeid是否会区分char和int。

int i, j;
for(i=0; i<lines; i++){
    j = 0;
    while(readIn[i][j] != ''){
        cout << typeid(readIn[i][j]).name();
        j++;
    }
    cout << endl;
}

但是我的结果如下所示:

ccccccccccccccc
ccccccccccccccccccccc
ccccccccc

因此,它将字符串中的每个字符解释为字符。

我的第二个问题涉及拉动功能。在推送函数中,一旦我能够正确让 char 进行浮点转换,我就做了一个函数重载,一个使用 char,另一个用浮点数。完全相同的代码,只是将数据存储到结构的单独部分中。但是在拉取函数中,如何拉取字符或浮点数?我需要一个 pull 函数来返回一个 char,另一个返回一个浮点数,但你不能有 2 个具有相同参数和不同返回的函数,我有点迷茫。

我真的很感激任何帮助!!

我不知道

,我是否正确理解了你的问题。您只是想知道,字符串中的字符代表什么(数字、字母、点等)?

在这种情况下,我将使用 C 函数

 isalpha(c); // != 0, if c is a letter
 isdigit(c); // != 0, if c is a digit
 isspace(c); // != 0, if c is space, tab, ...