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