qt 可以在一个函数中读一个文件,然后再将内容写入另一个文件中

是的,Qt 允许你在一个函数中读取一个文件的内容,并将这些内容写入到另一个文件中。这可以通过结合使用 QFileQTextStream(或 QDataStream,取决于你的具体需求)来实现。以下是一个简单的示例,展示了如何在一个函数中完成这个任务:

复制代码
#include <QFile>  
#include <QTextStream>  
#include <QDebug>  
  
bool copyFileContent(const QString &sourceFile, const QString &destinationFile) {  
    QFile sourceFileHandle(sourceFile);  
    QFile destinationFileHandle(destinationFile);  
  
    if (!sourceFileHandle.open(QIODevice::ReadOnly | QIODevice::Text)) {  
        qDebug() << "无法打开源文件:" << sourceFile;  
        return false;  
    }  
  
    if (!destinationFileHandle.open(QIODevice::WriteOnly | QIODevice::Text)) {  
        qDebug() << "无法打开目标文件:" << destinationFile;  
        return false;  
    }  
  
    QTextStream sourceStream(&sourceFileHandle);  
    QTextStream destinationStream(&destinationFileHandle);  
  
    while (!sourceStream.atEnd()) {  
        QString line = sourceStream.readLine();  
        destinationStream << line << endl; // 写入目标文件,并添加换行符  
    }  
  
    sourceFileHandle.close();  
    destinationFileHandle.close();  
  
    return true;  
}  
  
int main() {  
    QString sourceFile = "path/to/source.txt";  
    QString destinationFile = "path/to/destination.txt";  
  
    if (copyFileContent(sourceFile, destinationFile)) {  
        qDebug() << "文件内容复制成功!";  
    } else {  
        qDebug() << "文件内容复制失败!";  
    }  
  
    return 0;  
}

在这个示例中,copyFileContent 函数接受两个参数:源文件的路径和目标文件的路径。它首先尝试打开这两个文件,然后使用 QTextStream 来读取源文件的内容,并将这些内容逐行写入目标文件。如果文件操作成功,函数返回 true;否则,返回 false

请注意,你需要根据实际情况替换 sourceFiledestinationFile 变量的值,以指向正确的文件路径。此外,这个示例假设文件是以文本模式打开的;如果你需要处理二进制文件,你应该去掉 QIODevice::Text 标志,并可能需要使用 QDataStream 而不是 QTextStream

相关推荐
用户8055336980316 小时前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
xcyxiner17 小时前
DicomViewer (vcpkg Windows和ubuntu编译)7
qt
Quz6 天前
QML Hello World 入门示例
qt
xcyxiner9 天前
DicomViewer (dcmtk读取dcm文件)5
qt
xcyxiner9 天前
DicomViewer (后台线程处理文件)4
qt
xcyxiner10 天前
DicomViewer (添加模型类)3
qt
xcyxiner10 天前
DicomViewer (目录调整) 2
qt
xcyxiner11 天前
dcmtk vtk vtk-dicom(gdcm) 编译(debug) v2
qt
LDR00612 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术12 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript