如何在 c++ 中访问行中间的字符

How can I access a character in the middle of a line in c++?

本文关键字:中间 字符 访问 c++      更新时间:2023-10-16

我正在做一个项目,该项目包括从一个名为input的文件中读取输入.txt该文件具有无限行数。每行都有一个罗马数字、一个空格、一个加号或减号、另一个空格,然后是另一个罗马数字。我应该将两个数字相加,然后将答案写入另一个名为 output.txt 的文件。但是,我想不出访问运营商的方法。下面是一个示例输入文件:

XV + VII 
XII + VIII

有人可以告诉我如何访问代码每一行的加号吗?

如果从标准输入读取文件,只需使用提取运算符即可获取空格分隔的标记。

#include <string>
#include <iostream>
int main(int argc, char *argv[]) {
    std::string token;
    while (std::cin >> token) {
      // parse tokens here ...
      // As an example, I'll just print out the stream of tokens.
      std::cout << token << std::endl;
    }
}

如果你想假设每行只有 3 个代币,你甚至可以这样做:

#include <string>
#include <iostream>
int main(int argc, char *argv[]) {
    std::string first, middle, last;
    while (std::cin >> first >> middle >> last) {
      // This should print out just your operator
      std::cout << middle << std::endl;
    }
}

1)使用string::find查找拆分的位置(+-

2) 使用 string::substr 根据您找到拆分字符的位置将字符串分成两部分。

1) 从输入中读取 3 个令牌。第一项是左操作数,第二项是运算符,第三项是右操作数。

2) 将操作数转换为整数。

3) 根据运算符添加或减去第二个值。

4) 使用特殊的罗马数字格式化器格式化结果。

5) 将结果写入输出文件。