c++ - 我无法读取空格并使用 devc++ 在 c++ 中输入

标签 c++ c++11 visual-c++

<分区>

嗨,我是新来的,我想我没有什么问题。我希望我的程序在文本文件的整个文本中更改一个字符。例如,我想将所有 A 更改为 G。但是当我阅读它时,它甚至不读取空格并输入。我也想在新的文本文件中写编辑文本。感谢您的帮助。

最佳答案

一开始你应该加载整个文件。

std::ifstream is("file.txt");
is >> std::noskipws;
std::istream_iterator<char> start(is), end;
std::vector<char> buffer(start, end);

is >> std::noskipws 防止流跳过空格或回车等白色字符。然后使用 std::replace(buffer.begin(), buffer.end(), 'A', 'G'); 替换字符。

现在只需保存文件:

std::ofstream out("file.txt", std::ofstream::binary);
std::copy(buffer.begin(), buffer.end(), std::ostreambuf_iterator<char>(out));

您可能想阅读有关这些的内容: std::ostreambuf_iterator , std::istream_iterator , std::noskipws , std::replace .

关于c++ - 我无法读取空格并使用 devc++ 在 c++ 中输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41492732/

相关文章:

c++ - 如何改善我的文件写入方法以减小Wavefront Object文件的大小?

c++ - 有没有更好的方法来实现这种内存管理?

visual-studio-2010 - 在 Visual Studio 2010 中使用 TagLib

c++ - 如何以多态方式使用替代类型的 std::variant

c++ - 正确使用和实现单例

c++ - 基于范围的 for 语句中的 GCC 错误

c++ - 如何捕获在 C++ 中运行的命令的 exit_code 和 stderr?

c++ - 如何避免在提升范围变换中复制

c++ - 使用 VC++ 9.0 从 Web 服务器下载图像文件

c++11 如何实现 `std::string ToString(std::tuple<Args...> &t)` ?