Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.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++; 我在C++中写一个工资程序,需要能够读取文件中的行,计算,然后重写文件中的读行。是否有一个函数/方法可以简单地覆盖特定的行,插入新的行,添加到现有文件的结尾?< P>没有在文本文件中“插入”或“删除”文本的C++功能。唯一的方法是读入现有文本,然后写出修改后的文本_C++_Csv_File Io - Fatal编程技术网

用C++; 我在C++中写一个工资程序,需要能够读取文件中的行,计算,然后重写文件中的读行。是否有一个函数/方法可以简单地覆盖特定的行,插入新的行,添加到现有文件的结尾?< P>没有在文本文件中“插入”或“删除”文本的C++功能。唯一的方法是读入现有文本,然后写出修改后的文本

用C++; 我在C++中写一个工资程序,需要能够读取文件中的行,计算,然后重写文件中的读行。是否有一个函数/方法可以简单地覆盖特定的行,插入新的行,添加到现有文件的结尾?< P>没有在文本文件中“插入”或“删除”文本的C++功能。唯一的方法是读入现有文本,然后写出修改后的文本,c++,csv,file-io,C++,Csv,File Io,如果新文本与旧文本放在同一个空间中,则只需覆盖现有文本,当然,您可以在.CSV文件中的逗号前后添加额外的空格,而不会使其成为“字段”的一部分。但是,如果新数据更长,它肯定无法“就地覆盖” 通过使用ios\u base::ate修饰符,添加到末尾相对容易。但是中间插入仍然包括基本的阅读,直到你找到相关的地方,然后,如果新文本较长,你必须阅读以下所有行,然后才能写出新的一行 因为您想读写特定的行,所以您应该研究读写文本文件。在std图书馆的fstream上看一看。这听起来像是可以用脚本语言解决的问题

如果新文本与旧文本放在同一个空间中,则只需覆盖现有文本,当然,您可以在.CSV文件中的逗号前后添加额外的空格,而不会使其成为“字段”的一部分。但是,如果新数据更长,它肯定无法“就地覆盖”


通过使用
ios\u base::ate
修饰符,添加到末尾相对容易。但是中间插入仍然包括基本的阅读,直到你找到相关的地方,然后,如果新文本较长,你必须阅读以下所有行,然后才能写出新的一行

因为您想读写特定的行,所以您应该研究读写文本文件。在std图书馆的fstream上看一看。这听起来像是可以用脚本语言解决的问题。这是一个可行的选择吗?我建议您使用SQL数据库,而可能是C++中可能的SQL数据库。我对c++编程比较陌生,所以如果我重写一行,它需要相同长度的字符吗?或者是否需要相同长度的字符串(包括值/逗号)整行必须具有完全相同的字符数,或者旧行的一些“剩余”将保留在文件中(如果新行较短),或者下一行(的一部分)将被覆盖(如果新行比旧行长)。在典型的情况下,我将每一行读入一个数组,并修改该数组中的相关行[换句话说,
std::vector
],然后将其重新写出来。[数组可能是每行一个字符串,或者是每个元素的类型的向量,或者它们是相同的,或者某种结构-取决于您的输入是什么…]好的,非常感谢,这非常有帮助。最后一个对我有很大帮助的问题是,是否可以根据程序中的行数创建数组?如果使用
std::vector
,在读取文件之前不需要知道行数。只要对你读过的每一行使用
push_back