如何在 c++ 中访问行中间的字符
How can I access a character in the middle of a line in c++?
我正在做一个项目,该项目包括从一个名为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) 将结果写入输出文件。
相关文章:
- C++字符*缓冲区的大小
- HEX值到wchar_t字符(UTF-8)的转换
- 2D数组来自文本输入,中间有空格
- 为什么 Serial.println(<char[]>);返回随机字符?
- 我的字符计数代码计算错误.为什么
- 字符串-C++后显示的随机字符
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 如何在C++中从字符串中分割字符
- 递归形成字符串中所有数字字符的中间和?
- 如何在文本文件中间插入字符
- 如何组合一个宽字符字符串,中间插入一些空字符
- 给定一个填充无符号字符**的 C 函数,如何在没有中间副本的情况下用数据填充 std::vector
- 我正在尝试在字符数组的中间添加一个空格.不确定如何正确移动它
- 为什么字符<<和字符>>中间结果 int
- 在std::字符串或字符数组中间包含NULL字符的UPDATE
- 如何返回指向字符数组中间某些内容的指针
- 如何在 c++ 中访问行中间的字符
- 如何打印在中间包含0个字符的字符串
- 矢量字符串字符替换在字符串c++的中间
- _带有_O_U8TEXT标志的wsopen_s,向缓冲区、中间字符和4个中间俄语字符返回0.VS2010