Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QTextStream人工繁殖_C++_Qt_Qtextstream - Fatal编程技术网

C++ QTextStream人工繁殖

C++ QTextStream人工繁殖,c++,qt,qtextstream,C++,Qt,Qtextstream,我正在打开一个文件并获取它的QTextStream。然后,我使用readLine()逐行读取流。当该行与某个字符串匹配时,我需要将其替换为另一个字符串。我需要的行为是,该行被完全替换(即,如果该行是“longword”,我将其替换为“word”,则该行应仅包含“word”和“word”) 目前我正在使用seek()和,据我所知,您不能简单地将文本文件的一块删除到位。如果替换字符串的大小相同,则可以替换那些精确的字节;如果替换字符串的长度较短,则可以通过将空空间填充为null来解决问题 如果不想这

我正在打开一个文件并获取它的QTextStream。然后,我使用readLine()逐行读取流。当该行与某个字符串匹配时,我需要将其替换为另一个字符串。我需要的行为是,该行被完全替换(即,如果该行是“longword”,我将其替换为“word”,则该行应仅包含“word”和“word”)


目前我正在使用seek()和,据我所知,您不能简单地将文本文件的一块删除到位。如果替换字符串的大小相同,则可以替换那些精确的字节;如果替换字符串的长度较短,则可以通过将空空间填充为null来解决问题

如果不想这样做,则必须创建一个新文件,从旧文件中读取每一行,在内存中对该行进行任何必要的更改,然后将该行写入新文件。完成后,您可以用新文件替换原始文件

如果可以在文件中添加/删除块,您很可能会在硬盘上留下一个相当零碎的文件。如果需要插入更多字符,则必须创建额外的片段,因为新数据无法容纳旧数据占用的空间量,删除数据会在文件中留下漏洞