QT6 按行读取一个txt文件的字符后写入另一个txt文件
时间: 2024-12-14 20:27:41 浏览: 16
在Qt中,你可以使用QFile和QTextStream这两个类来按行读取一个txt文件的内容,并将其逐行写入另一个txt文件。以下是一个简单的示例:
```cpp
#include <QObject>
#include <QFile>
#include <QTextStream>
class MyClass : public QObject
{
public slots:
void readAndWriteFiles(const QString& inputFile, const QString& outputFile) {
QFile input(inputFile);
QFile output(outputFile);
if (!input.open(QIODevice::ReadOnly)) {
qWarning() << "Failed to open input file for reading";
return;
}
QTextStream in(&input);
QTextStream out(&output);
while (!in.atEnd()) {
QString line = in.readLine();
out << line << endl; // 每行结尾加上换行符
}
input.close();
output.close();
if (!output.error()) {
qDebug() << "Successfully wrote content to the output file.";
} else {
qWarning() << "Error writing to output file: " << output.errorString();
}
}
};
```
在这个例子中,我们首先创建两个`QFile`对象,分别对应输入文件和输出文件。然后尝试打开输入文件以只读模式,如果失败则打印错误信息并返回。接着,我们创建`QTextStream`对象指向文件流,逐行读取输入文件内容,并将每一行写入输出文件,每行末尾添加一个换行符。
最后,关闭两个文件并检查输出文件的错误状态。如果有写入错误,会输出相应的错误信息。
阅读全文