使用C ++覆盖txt文件

时间:2017-04-05 11:45:56

标签: c++

所以基本上我在txt文件中有这个内容:

-
506; 25; ,thing1 thing2, thing3; 10, 15

我想将600; 12345678910; whatever1, whatever2, whatever3; 15, 60更改为较短的字符串,例如,2 所以我运行代码,它确实改变了第2行中前两个12345678910之间的字符串。

运行txt之后是这样的:

;...;
506; 25; ,thing1 thing2, thing3; 10, 15
600; 2; whatever1, whatever2, whatever3; 15, 60

但是,如果我更改为更大的字符串,则不会创建第三行。

; 15, 60

首先,我将文件每一行的内容上传到字符串向量while (j < storage_line.size()) { size_t found = storage_line[j].find(string_to_add); if (found != std::string::npos) { size_t found2 = storage_line[j].find(";"); //finds the position of the first ; size_t found3 = storage_line[j].find(";", found2 + 1); //finds position of the second ; storage_line[j].replace(found2 + 2, found3 - found2 - 2, string_to_add); file2 << storage_line[j] << endl; cout << storage_line[j] << endl; j++; } else { file2 << storage_line[j] << endl; cout << storage_line[j] << endl; j++; } }

如果我storage_line,它只显示我想要更改的字符串,并且不会创建第三行。

使用cout << storage_line[j] << endl;,它会创建一个额外的行,如上所示。

0 个答案:

没有答案