C++ 我是否可以将字符串附加到文件的特定行?
我对stackoverflow还是一个新手,所以如果有什么我做得不对的地方,我很抱歉。我有一个不断更新的csv文件,但我希望能够选择在特定行的末尾添加字符串。我有一个方法,可以找到我想要附加字符串的行,但我不确定如何在不在csv文件底部创建新行的情况下将该字符串添加到该行的末尾 '''C++ 我是否可以将字符串附加到文件的特定行?,c++,qt,C++,Qt,我对stackoverflow还是一个新手,所以如果有什么我做得不对的地方,我很抱歉。我有一个不断更新的csv文件,但我希望能够选择在特定行的末尾添加字符串。我有一个方法,可以找到我想要附加字符串的行,但我不确定如何在不在csv文件底部创建新行的情况下将该字符串添加到该行的末尾 ''' QFile学生列表(“listOfStudents.csv”); QTextStream读取(&listOfStudents),写入(&listOfStudents; QStringList学生信息; QStri
QFile学生列表(“listOfStudents.csv”);
QTextStream读取(&listOfStudents),写入(&listOfStudents;
QStringList学生信息;
QString junkLine=read.readLine(),line,studentLine,
附录字符串=“拉尔夫·爱默生”;
如果(!listOfStudents.open(QFile::ReadWrite | QFile::Text))
{
警告(这是“标题”,“未打开!”);
}
而(!read.atEnd())
{
line=read.readLine();
if(line.contains(IDNumber,Qt::区分大小写))
{
学生线=线;
学生线+=“,”;
studentLine+=附加字符串;
line.clear();
写文件通常是连续的、有界的字节流。因此,如果你想在一个中间写,你就必须向前移动其余的空间来为新的空间腾出空间。
如果您的文件足够小,一个简单的解决方案是完全解析它们,将它们作为数据结构保存在内存中,修改它,然后将其转储回内存
最有效的解决方案是在将文件读入一个新的文件时,在到达插入点时添加新的文件,然后继续将文件的其余部分复制到输出中。
文件通常是连续的、有界的字节流。因此,如果您想在中间写一个,则将是H。ave必须向前移动所有剩余的部分,为新的部分腾出空间
如果您的文件足够小,一个简单的解决方案是完全解析它们,将它们作为数据结构保存在内存中,修改它,然后将其转储回内存
但是,最有效的解决方案是在将文件读入新文件时写入,然后在到达插入点时添加新文件,然后继续将文件的其余部分复制到输出中
QFile listOfStudents("listOfStudents.csv");
QTextStream read(&listOfStudents), write(&listOfStudents;
QStringList studentInformation;
QString junkLine = read.readLine(), line, studentLine,
appendingString = "Ralph Emerson";
if(!listOfStudents.open(QFile::ReadWrite | QFile::Text))
{
QMessageBox::warning(this, "title", "not open!");
}
while(!read.atEnd())
{
line = read.readLine();
if(line.contains(IDNumber, Qt::CaseSensitive))
{
studentLine = line;
studentLine += ", ";
studentLine += appendingString;
line.clear();
write << studentLine;
break;
}
}