gpt4 book ai didi

c++ - 如何在以前读取的行中找到一些单词并在输出中删除它 - c++中的读/写字符串

转载 作者:行者123 更新时间:2023-11-28 02:58:02 25 4
gpt4 key购买 nike

我正在用 C++ 读取一个文本文件,并将一堆成对的数字从它写入另一个文件。

输入文件的结构是一堆成对的数字和一些行,如“remove120 43 blah bla”,表示删除一个先前的成对数字,在本例中为 120 43(肯定存在于先前的一行中) .

因此,每当一行中出现“删除”这个词时,我想在前面的行中找到它的配对数字并将其从我的输出中删除。

附言我过去提供过这个输入文件,但此时我不擅长处理字符串,这让我感到困惑。

我是这样开始的:

string s;
ifstream myfile("input.txt");
ofstream output ("output.txt");

if(myfile.is_open()){
while (!myfile.eof()){
getline (myfile, s);
.
.
.

最佳答案

有些代码有助于查看您当前的位置,但根据您的描述,我会设置如下内容:

istream file;
string line;
map pairs;
sstream line_parser;
int one, two

while (file >> line) {
line_parser.str(line);
if (line[0] == 'r') {
line_parser >> line; // take 'remove' out of the stream
line_parser >> one;
pairs.erase(pairs.find(one));
} else {
line_parser >> one;
line_parser >> two;
pairs[one] = two;
}
}

编辑: 这假设您没有重复的键,否则值将被覆盖。任何容器都可以代替 map 来保存对

关于c++ - 如何在以前读取的行中找到一些单词并在输出中删除它 - c++中的读/写字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21544568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com