首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我想通过cpp将文本文件中的任何+或-更改为“+”和“-”。我可以打印文件中的所有内容,但无法更改字符

您好,根据您的问题,您可以通过以下方法使用 C++ 将文本文件中的任何 + 或 - 更改为 "+" 和 "-":

  1. 打开文件:首先,您需要使用 C++ 的文件输入输出流打开文本文件。可以使用 std::ifstream 来读取文件内容,并使用 std::ofstream 来写入更改后的内容。
代码语言:txt
复制
#include <iostream>
#include <fstream>
#include <string>

int main() {
    std::ifstream inputFile("input.txt");
    std::ofstream outputFile("output.txt");
    if (!inputFile || !outputFile) {
        std::cout << "无法打开文件!" << std::endl;
        return 1;
    }

    // 在这里执行文本文件内容的更改操作

    inputFile.close();
    outputFile.close();
    return 0;
}
  1. 更改字符:可以使用 C++ 的字符串操作函数来实现字符的替换。例如,可以使用 std::stringreplace() 函数将文本中的 "+" 替换为 "+ ",将 "-" 替换为 "- "。
代码语言:txt
复制
std::string line;
while (std::getline(inputFile, line)) {
    size_t pos = 0;
    while ((pos = line.find("+", pos)) != std::string::npos) {
        line.replace(pos, 1, "+ ");
        pos += 2;
    }

    pos = 0;
    while ((pos = line.find("-", pos)) != std::string::npos) {
        line.replace(pos, 1, "- ");
        pos += 2;
    }

    outputFile << line << std::endl;
}
  1. 打印文件内容:在更改完成后,您可以通过再次打开更改后的文件并逐行打印文件内容来验证更改是否成功。
代码语言:txt
复制
std::ifstream modifiedFile("output.txt");
std::string modifiedLine;
while (std::getline(modifiedFile, modifiedLine)) {
    std::cout << modifiedLine << std::endl;
}
modifiedFile.close();

综上所述,以上代码段可用于实现通过 C++ 将文本文件中的任何 + 或 - 更改为 "+" 和 "-" 的功能。请注意,您需要根据实际情况修改文件名和路径,并且还可以根据需要进行其他的文本处理操作。

希望这些信息对您有帮助!如有更多问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

笨办法学 Java(三)

(我已经将异常参数命名为 err,尽管它可以被命名为任何东西。) 在catch块中,我打印出一个合适的错误消息,然后通过调用内置函数System.exit()来结束程序。...学习演练 将代码更改为显示最低平均日温度和最高平均日温度。 尝试在网上找到另一个离你更近的城市的温度文件,并将你的代码更改为从该文件中读取!...我想值得一提的是,尽管记录中的三个字段都是字符串,但zip字段是整数。 记录的字段可以是您想要的任何类型。...我相当肯定这些街道在这些城市中并不存在。 如果我奇迹般地编造了一个真实地址,请告诉我,我会更改它。 练习 54:从文件中读取记录 这个练习将向您展示如何从文本文件中读取记录的值。...请注意,在函数和main()中的while循环中,变量 a 一次只保存一个记录。我们从文件中读取所有记录并将它们全部打印在屏幕上,但当程序最后一次通过循环时,变量 a 只保存最近的记录。

19610
  • C++ 与正则表达式

    或者,你也可以直接通过下面这条命令获取所有源码: git clone https://github.com/paulQuei/cpp-regex.git C++中正则表达式的API基本上都位于头文件中。...cout.width(12); 是为了控制输出格式的缩进。 先打印出正则表达式,然后打印冒号和双引号。将匹配的内容放在双引号中是为了更容易辨识。 调用search_string进行字符的匹配。...我们将这段文字保存在名称为content.txt的文本文件中。下面几个示例会在这个文本上操作。...: 匹配单词的正则表达式 通过ifstream读取文本文件 依次读取文本文件中的每一行 通过正则表达式迭代器从文本行的逐个匹配 迭代器的末尾 迭代器遍历 每遇到一个匹配进行一次计数 如果需要,可以输出匹配的内容...上面这个正则表达式的含义是:匹配一个两端是双引号,中间是任意文字的内容。 当然,你马上想到一个改进方法那就是:将正则表达式圆括号中的.+改为[^"]+,它的含义是:一个或多个非双引号字符。

    2.8K20

    开篇:预备知识---1

    我们在写 C语言程序的时候将源文件后缀名改为 .cpp 就可以在其中使用 C++ 的语言特性了。 ​...库 ​ 库可以理解为仓库,或者已经存在的东西,在计算机中可以看成可以直接使用的代码或功能实现程序块。...之后操作系统通过设备驱动程序将数据集(包括这里打印的字符)传递给显示屏完成硬件调用。这里的分层思想为 程序员->C语言库->操作系统库->设备驱动程序库。...当然我们也可以直接将文件后缀名改为 .cpp,这样的话我们就可以使用 C++语言特性,显然,C++ 是支持单行注释的。 即时变量 ​ 早期的 C语言(C89)标准不允许使用即时变量。何为即时变量呢?...​ 当然如果你不更改程序段的话,那么解决方法和上面注释小节是一样的:要么使用 C99 标准,或者更改文件后缀名为 .cpp 以使用 C++ 特性。

    53540

    Visual C++ 中的重大更改

    因为它不起作用,将其删除不会更改任何内容。  异常处理 有几个对异常处理的更改。 首先,异常对象必须可复制或可移动。...相邻字符串文本 与上文类似,由于字符串分析中的相关变化,没有任何空格的相邻字符串文本(或宽或窄的字符字符串文本)被视为 Visaul C++ 早期版本中的单个串联字符串。...更改指针类型需要对使用联合字段的代码进行更改。 将代码更改为值将更改存储在联合中的数据,这会影响其他字段,因为联合类型中的字段共享相同的内存。 根据值的大小,它还可能更改联合的大小。 ...#IND 这些字符串的任何一种都可能已采用符号作为前缀并且格式设置也可能略有不同,具体取决于字段宽度和精度(有时会起到不寻常的作用,例如 printf("%.2f\n", INFINITY) 可以打印...程序可以调用参数为 _TWO_DIGIT_EXPONENT 的此函数,以启用符合标准的指数打印。 已将默认行为更改为符合标准的指数打印模式。

    5.3K10

    Visual C++ 中的重大更改

    因为它不起作用,将其删除不会更改任何内容。  异常处理 有几个对异常处理的更改。 首先,异常对象必须可复制或可移动。...相邻字符串文本 与上文类似,由于字符串分析中的相关变化,没有任何空格的相邻字符串文本(或宽或窄的字符字符串文本)被视为 Visaul C++ 早期版本中的单个串联字符串。...更改指针类型需要对使用联合字段的代码进行更改。 将代码更改为值将更改存储在联合中的数据,这会影响其他字段,因为联合类型中的字段共享相同的内存。 根据值的大小,它还可能更改联合的大小。 ...#IND 这些字符串的任何一种都可能已采用符号作为前缀并且格式设置也可能略有不同,具体取决于字段宽度和精度(有时会起到不寻常的作用,例如 printf("%.2f\n", INFINITY) 可以打印...程序可以调用参数为 _TWO_DIGIT_EXPONENT 的此函数,以启用符合标准的指数打印。 已将默认行为更改为符合标准的指数打印模式。

    4.8K00

    面向 C++ 的现代 CMake 教程(二)

    由于没有任何粒度,我们必须对每个翻译单元一视同仁,无法指定不同的编译标志,为代码的某些部分选择更新的语言版本,以及在代码的特定区域静默警告。一切都是全局的,这意味着我们需要同时对所有源文件引入更改。...这不仅允许更干净的构建树和更简单的.gitignore文件,而且还减少了你意外覆盖或删除任何源文件的可能性。...该模块将生成一个文本文件,我们可以将其导入到 Graphviz 可视化软件中,该软件可以渲染图像或生成 PDF 或 SVG 文件,作为软件文档的一部分。...这看起来很简单,但如果我们想根据外部因素(如操作系统、体系结构或其他内容)来条件这些部分,会发生什么情况呢?好消息!您可以将值从 CMake 传递给 C++编译器,而且一点也不复杂。...您可以更改目标属性或默认变量。 自版本 3.18 起,你可以选择明确地定义文件如何与命名组一起打包。为此,将目标的UNITY_BUILD_MODE属性更改为GROUP(默认值始终为BATCH)。

    70500

    Power Query 真经 - 第 5 章 - 从平面文件导入数据

    将它的类型设置为【整数】数据类型,并更新查询名称。 将 “Account” 列的数据类型更改为【整数】数据类型。 将查询名称改为 “Transactions”。...可以尝试从左边或右边切入,但目前有一大堆额外的前置空格和中间重复的空格。如果能去掉这些就更好了。...在 Excel 中,通过 TRIM 和 CLEAN 函数来清理文本数据是一种标准的做法,以便删除所有开头、尾部和重复的空格,以及去除所有非打印字符。...确保筛选的列表中显示的所有值都是空白或空的。 或者,如果通过查看【视图】选项卡打开了【列质量】和【列分发】功能。那么用户将会在列的标题中得到一个的图表。...【注意】 在按分隔符进行分隔时,并不局限于单个字符的分隔符。实际上,如果想按整个单词分隔,可以输入该单词作为分隔符。

    5.3K20

    Linux命令大全,从A到Z都有总结,封神之作!

    aplaymidi 用于播放标准 MIDI(乐器数字接口)文件,通过将 MIDI 文件的内容发送到 ALSA(高级 Linux 声音架构)MIDI 端口 apropos 当用户不记得确切的命令但知道一些与定义其用途或功能的命令相关的关键字时...banner 用于将大写的 ASCII 字符串打印到标准输出 basename 从文件名中去除目录信息和后缀,即打印文件名 NAME 并删除任何前导目录组件...,复制输出”,它用于处理诸如 .cpio 或 .tar 之类的存档文件,此命令可以将文件复制到存档或从存档复制文件 cpp C 编译器会自动使用它在编译前转换程序...fmt 用作简化和优化文本文件的格式化程序 fold 将输入文件中的每一行包装起来以适应指定的宽度并将其打印到标准输出 for 用于对列表中存在的每个元素重复执行一组命令.../var/log/wtmp 以来登录和退出的所有用户的列表 less 用于每次读取一页(一屏)文本文件的内容 let 用于计算 shell 变量的算术表达式

    2.3K02

    600个常用Linux命令大全,从A到Z

    aplaymidi 用于播放标准 MIDI(乐器数字接口)文件,通过将 MIDI 文件的内容发送到 ALSA(高级 Linux 声音架构)MIDI 端口 apropos 当用户不记得确切的命令但知道一些与定义其用途或功能的命令相关的关键字时...awk 一种用于操作数据和生成报告的脚本语言 B 命令 描述 banner 用于将大写的 ASCII 字符串打印到标准输出 basename 从文件名中去除目录信息和后缀,即打印文件名 NAME 并删除任何前导目录组件...更改用户名和其他详细信息 chgrp 用于更改文件或目录的组所有权 chkconfig 用于列出所有可用服务并查看或更新其运行级别设置 chmod 用于改变文件的访问模式 chown 用于更改文件所有者或组...getent 用于获取许多称为数据库的重要文本文件中的条目 gpasswd 用于管理 /etc/group 和 /etc/gshadow grep 在文件中搜索特定的字符模式,并显示包含该模式的所有行...用于显示谁登录以及他们在做什么 wall 在所有当前登录用户的终端上显示消息、文件内容或其他标准输入 watch 用于定期执行程序,全屏显示输出 wc 用于找出文件参数中指定的文件中的行数、字数、字节数和字符数

    54311

    Cu002FC++ 中的重命名函数

    这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情 rename() 函数用于更改文件或目录的名称,即从 old_name 更改为 new_name,而不更改文件中存在的内容。...此函数将文件名作为其参数。 如果new_name是同一文件夹中现有文件的名称,则该函数可能会失败或覆盖现有文件,具体取决于特定的系统和库实现。...new_name : 包含文件新名称的字符串。 返回 : 函数的返回类型为整数。如果文件重命名成功,则返回零。失败时,返回非零值。 假设我们有一个文本文件,文件名为 geeks.txt,有一些内容。...因此,我们将使用存在于该文件所在的同一文件夹中的以下 C 程序重命名此文件。...0; } 输出: 如果文件名已更改 文件名已成功更改 或者 如果文件名未更改 错误:没有这样的文件或目录

    80310

    Python 自动化指南(繁琐工作自动化)第二版:十六、使用 CSV 文件和 JSON 数据

    例如,CSV 文件: 它们的值没有类型——一切都是字符串 没有字体大小或颜色的设置 没有多个工作表 无法指定单元格的宽度和高度 不能有合并单元格 不能嵌入图像或图表 CSV 文件的优点是简单。...例如,由于 CSV 文件中的每个单元格都由逗号分隔,所以您可以在每行文本上调用split(',')来获取逗号分隔的值作为字符串列表。但并不是 CSV 文件中的每个逗号都代表两个单元格之间的边界。...您可以通过使用带有csv.writer()的delimiter和lineterminator关键字参数将字符更改为不同的值。...传递delimiter='\t'和lineterminator='\n\n'➊ 将单元格之间的字符更改为制表符,将行之间的字符更改为两个换行符。然后我们调用writerow()三次,得到三行。...在高层次上,程序必须做到以下几点: 在当前工作目录中查找所有 CSV 文件。 读入每个文件的全部内容。 跳过第一行,将内容写入一个新的 CSV 文件。

    11.6K40

    linux zip 命令详解(2)

    -g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。  -h 在线帮助。  -i 只压缩符合条件的文件。  -j 只保存文件名称及其内容,而不存放任何目录名称。 ...-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。  -q 不显示指令执行过程。  -r 递归处理,将指定目录下的所有文件和子目录一并处理。 ...-v 执行是时显示详细的信息。 -z 仅显示压缩文件的备注文字。 -a 对文本文件进行必要的字符转换。 -b 不要对文本文件进行字符转换。 -C 压缩文件中的文件名称区分大小写。...-j 不处理压缩文件中原有的目录路径。 -L 将压缩文件中的全部文件名改为小写。 -M 将输出结果送到more程序处理。 -n 解压缩时不要覆盖原有的文件。...-o 不必先询问用户,unzip执行后覆盖原有文件。 -P 使用zip的密码选项。 -q 执行时不显示任何信息。 -s 将文件名中的空白字符转换为底线字符。 -V 保留VMS的文件版本信息。

    4.9K60

    【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章

    同时修改文件的拥有者和所属组: 要将文件 file.txt 的拥有者更改为Sam,同时将所属组更改为 Bob,可以执行以下命令: chown Sam:Bob file.txt 或者也可以使用这种方式:.../path/to/directory 这会将 /path/to/directory 目录及其所有内容(包括子目录和文件)的拥有者更改为 Sam,所属组更改为Bob。...root.txt 由此可以得出结论,如果没有目录的执行权限,用户无法通过cd命令进入该目录,也无法通过ls命令查看该目录的任何内容 2.3.2、目录的读权限 含义: 允许用户列出目录中的文件和子目录。...即便我不是文件的拥有者和所属组,我只有文件的读权限,但是我仍然可以删除这属于root用户的文件,且不需要任何身份确认!...所有用户都可以在 /tmp 目录中创建临时文件,但只有文件的所有者或 root用户能够删除文件。这样即使其他用户也能在该目录下创建文件,也无法删除他人创建的文件。

    5300

    流畅的 Python 第二版(GPT 重译)(二)

    ② 不能通过 d_proxy 进行更改。 ③ d_proxy 是动态的:d 中的任何更改都会反映出来。...另一个变化是PEP 529—将 Windows 文件系统编码更改为 UTF-8,也在 Python 3.6 中实现,将文件系统编码(用于表示目录和文件名称)从微软专有的 MBCS 更改为 UTF-8。...通常移除变音符号的原因是将拉丁文本更改为纯 ASCII,但 shave_marks 也会改变非拉丁字符,比如希腊字母,这些字母仅仅通过失去重音就不会变成 ASCII。...第五章涵盖了文件和 I/O,并包括“第 5.17 节 写入字节到文本文件”,展示了在任何文本文件下始终存在一个可以在需要时直接访问的二进制流。...最终结果是 NFC 不会触及微符号,但会将欧姆符号更改为大写希腊字母 omega,而 NFKC 和 NFKD 会将欧姆符号和微符号都更改为希腊字符。

    32100

    Python 自动化指南(繁琐工作自动化)第二版:十一、调试

    在代码中,assert语句由以下内容组成: assert关键字 条件(即计算结果为True或False的表达式) 逗号 条件为False时显示的字符串 用简单的英语来说,一个assert语句说,“我断言条件成立...起初,你可能认为switchLights()应该简单地将每种光切换到序列中的下一种颜色:任何'green'值都应该更改为'yellow' , 'yellow'值应该更改为'red','red'值应该更改为...这样,您可以很容易地找到它来注释掉或取消注释调用,以根据需要启用或禁用日志消息。 记录到一个文件 您可以将日志消息写入文本文件,而不是显示在屏幕上。...您可以在任何文本编辑器中打开此文本文件,如记事本或“文本编辑”。 Mu 的调试器 调试器是 Mu 编辑器、IDLE 和其他编辑器软件的一个特性,它允许你一次执行一行程序。...logging模块是在代码运行时查看代码的好方法,并且比print()函数使用起来更方便,因为它有不同的日志记录级别和记录到文本文件的能力。 调试器让你一次一行地通过你的程序。

    1.5K40

    Python 自动化指南(繁琐工作自动化)第二版:九、读取和写入文件

    调用os.path.basename(path)将返回一个字符串,该字符串包含path参数中最后一个斜杠之后的所有内容。路径的目录(或dir)名和基本名在图 9-5 中列出。...将返回具有任意名称和任意三个字符扩展名的文件,其中中间字符是一个'x'。 通过挑选出具有特定属性的文件,glob()方法可以让您轻松地指定目录中想要执行某些操作的文件。...(相对于用shelve模块保存变量)是因为它是一个文本文件,文件的内容可以被任何人用一个简单的文本编辑器读取和修改。...open()函数可以以写入或附加模式打开文件,分别创建新的文本文件或添加到现有的文本文件中。 在前面的章节中,你使用剪贴板作为将大量文本输入程序的一种方式,而不是全部输入。...结果应该打印到屏幕上,并保存到一个新的文本文件中。 正则搜索 写一个打开所有txt文件,并搜索与用户提供的正则表达式匹配的任何一行。结果应该打印到屏幕上。

    3.5K51

    了解基本的Linux sed命令

    它使您能够使用Linux sed命令在操作系统中执行文本文件操作。 与大多数Linux应用程序一样,sed可以处理管道输入,这使它成为一种有效的脚本工具。...当这些函数作为脚本的一部分运行时,它们是可重复的和一致的,并且您可以快速实现更改。 但是sed的主要目的是更改文本文件的内容。它使用了一些重要的命令行开关。/s表示搜索,该命令以/g分隔。...使用Linux sed命令进行文件更改 可以使用sed编辑文件,但有点不满意。 ad hoc编辑可能会导致问题,因为sed无法访问完整的源代码,也无法识别错误或拼写错误。...结合sed中的提示 您还可以将多个Linux sed命令链接在一起以更改应用程序的位置。 手动修改文件路径有很大的错误空间,但自动化它可以使生活更轻松。...您可以在输出端使用它,以便创建一个新行来替换现有的一行。 您还可以使用$字符在行尾查找内容。 要查看更高级的示例,请使用man sed命令。 它提供了更详细的命令和语法分解。

    1.5K40

    笨办法学 Linux 0~3

    你刚刚在 vim 中编辑了文本文件,很好很强大! 附加题 通过键入键入vim hello.txt再次启动 vim,并尝试我给你的一些命令。...但是如果你只想查看一个文本文件呢?当然,你可以使用 vim,但很多时候它是过度的。还有两件事要考虑: 如果你想查看非常大的文件,你将需要在尽可能快的程序中查看它。...行号对应“现在输入它”的部分。 解释 打印当前目录中的所有文件,包括隐藏的文件。选项-al告诉ls 以long格式打印文件列表,并包括所有文件,包括隐藏文件。....从.profile文件中精确打印出最后 5 行。 将所有命令历史写入.bash_history文件。通常这是在会话结束时完成的,当你通过键入exit或按 + D关闭它。...打印当前目录中的文件。选项-tr表示文件列表按时间反向排序。这意味着最近创建和修改的文件最后打印。注意你现在有两个新的文件。 打印出保存命令历史记录的文件。注意你所有的输入都在这里。

    2.7K10

    面向 C++ 的现代 CMake 教程(三)

    我们还需要注意符号的处理——在所有翻译单元之间解决引用,确保不遗漏任何内容。然后,链接器可以创建程序头部并将其添加到最终的可执行文件中。...相反,我只是想证明我能构建并运行一个依赖于 Protobuf 的项目。为了实现这一点,我将创建一个尽可能小的合同的.proto文件。...在main.cpp文件中,我创建了一个代表这个消息的对象,将字段设置为123,并将其调试信息打印到标准输出。...接下来,调用configure_file,但实际上不配置任何内容。通过提供COPYONLY关键字,我们只是将我们的config.yaml复制到构建树中,这样可执行文件在运行时能够找到它。...从技术上讲,通过为 SUT 依赖动态链接来节省几秒钟是可能的,但往往我们同时在两个目标上进行更改:tests和sut,抵消了任何潜在的收益。

    67000
    领券