0
我想在Qt4中逐字读取文本文件(对此我很老实),我想要在另一个文件中每行写一个字。我可以在C++中做到这一点,没有任何问题,但是当我尝试在Qt4中使用ifstream和ofstream时,我有错误。这里是我的Qt4代码(在一个按钮的事件侦听器)从Qt4中的文本文件中逐字读取
// a string that holds the text inside the File Name index
QString str = ui->txtIndex->toPlainText();
// Check if this is a text file
if(str.endsWith(".txt")){
qDebug() << "a file";
// Create a File object that points to the file we input in the File Name
QFile mFile("/home/mohamed/Desktop/index.dat");
QFile readFile(str);
// Check if there is a problem
if(!mFile.open(QFile::WriteOnly | QFile::Append)){
qDebug() << "Could not open the file for writing";
return;
}
QTextStream in(&readFile);
if(!readFile.open(QFile::ReadOnly | QFile::Text)){
qDebug() << "Could not open the file for writing";
return;
}
// a text stream object that will print in the the file
QTextStream out(&mFile);
QString mText = in.readAll();
mText.replace("de","BURGER");
ui->txtSearchResult->setText(mText);
out << mText;
///home/mohamed/NetBeansProjects/indexing/fichier.txt
mFile.flush();
readFile.close();
mFile.close();
}
else{
qDebug() << " A FOLDER";
}
,这里是我的正常的C++代码工作正常!
#include <cstdlib>
#include <iostream>
#include <fstream>
#include<cstdlib>
#include <dirent.h>
using namespace std;
bool searchArray(string s, string undesired[]){
for(int i=0; i<50;i++){
if(undesired[i] == s){
return true;
break;
}
}
return false;
}
int main(int argc, char** argv) {
// array filled with undesired words
string undesired[50] = {"je","tu","il","nous","faut","faire","de","ce","se"};
// the directory
// the file to read from
ifstream reader("fichier");
// the file to write to
ofstream writer("index.dat", ios_base::app);
string word, message =" ";
int count = 0;
while(!reader.eof()){ // while there still is stuff to read
reader >> word; // read one word
if(!searchArray(word,undesired)){ // if it's an undesired word
writer << word <<"\t\t\t\t" <<count<<endl;// print it in the text
cout<<"word inserted"<<endl;
}
count++;
}
return 0;
}
你有什么错误? – 2012-02-19 21:44:13