c++ qt 合并多个txt文件

#include<iostream>
using namespace std;int main(){
FILE *txt_file1 = fopen("text1.txt","r");
FILE *txt_file2 = fopen("text2.txt","r");
FILE *txt_file3 = fopen("text3.txt","r");
FILE *txt_file4 = fopen("text4.txt","r");
FILE *txt_file5 = fopen("text5.txt","w+");
char ch=' ';
char ch1='\n';
while((fread(&ch,1,sizeof(char),txt_file1) )){
fwrite(&ch,1,1,txt_file5);
}
fwrite(&ch1,1,1,txt_file5); while((fread(&ch,1,sizeof(char),txt_file2) )){
fwrite(&ch,1,1,txt_file5);
}
fwrite(&ch1,1,1,txt_file5); while((fread(&ch,1,sizeof(char),txt_file3) )){
fwrite(&ch,1,1,txt_file5);
}
fwrite(&ch1,1,1,txt_file5); while((fread(&ch,1,sizeof(char),txt_file4) )){
fwrite(&ch,1,1,txt_file5);
}
fwrite(&ch1,1,1,txt_file5);

return 0;
}可以这样简单的写 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt C++中,并发多个线程按照顺序读取一个txt文件,可以使用信号和槽机制实现,具体步骤如下: 1. 创建一个QThread类的子类,用于读取文件。例如: ``` class FileReader : public QThread { Q_OBJECT public: explicit FileReader(QObject *parent = nullptr); void setFileName(const QString &fileName); QStringList lines() const; signals: void fileReadFinished(QStringList lines); protected: void run() override; private: QString m_fileName; QStringList m_lines; }; ``` 2. 在run()函数中读取文件内容并存储到m_lines变量中,例如: ``` void FileReader::run() { QFile file(m_fileName); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) return; QTextStream in(&file); while (!in.atEnd()) { QString line = in.readLine(); m_lines.append(line); } emit fileReadFinished(m_lines); } ``` 3. 在主线程中创建多个FileReader对象,并按照顺序启动线程,例如: ``` FileReader reader1, reader2, reader3; reader1.setFileName("file1.txt"); reader2.setFileName("file2.txt"); reader3.setFileName("file3.txt"); connect(&reader1, &FileReader::fileReadFinished, &reader2, &FileReader::start); connect(&reader2, &FileReader::fileReadFinished, &reader3, &FileReader::start); reader1.start(); ``` 4. 在最后一个FileReader对象的fileReadFinished信号中,获取所有线程读取的文件内容,并进行处理,例如: ``` connect(&reader3, &FileReader::fileReadFinished, this, &MyClass::onAllFilesReadFinished); void MyClass::onAllFilesReadFinished(QStringList lines) { // 处理所有文件内容 } ``` 注意:在多线程中访问同一个变量时需要注意线程安全问题,可以使用QMutex等机制来进行同步。同时,如果要读取的文件很大,可以考虑分块读取,每个线程读取一部分内容合并
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值