Problem in Using QProcess
-
First of all I make a file which reads program written on plainTextEdit and batch file for output and i am able to reterive the output from batch file and display it to another plainTextEdit but problem arises in case of cin and scanf statements .For example :
#include<iostream>
using namespace std;
int main()
{
int a,b;
cout<<"Enter two numbers";
cin>>a>>b;
return 0;
}
When i compiled this program a batch file will open that does not contain Enter two numbers statement that means it can take the input only but does show cout/printf statements,that is creating problem because user will not be able to detect what to enter. As i understands the problem and know what to enter in a batch file suppose i enetered 2 3 so output reterive to a plainTextEdit is correct i.e Enter two numbers 2 3. But problem occurs at User Console/Command Prompt.The Code is:
bool MainWindow::run_file()
{
QMessageBox msgBox;
QString program = "cons.bat";
QString st="PRESS OKK!!";
QStringList arguments;
QProcess *proc = new QProcess(this);
proc->startDetached(program);if(proc->NotRunning)
msgBox.setText(st);
msgBox.exec();
proc->waitForFinished();display_output(); return(true);
}
void MainWindow::display_output()
{QFile file("out.txt"); if(!file.open(QIODevice::ReadOnly)) { QMessageBox::information(0, "error", file.errorString()); } //QTextStream str(&file); QString out_str; while (!file.atEnd()) { out_str=file.readAll(); } ui->plainTextEdit_3->clear(); ui->plainTextEdit_3->insertPlainText(out_str); file.remove();
}
How to use flush in my code? I want everytime cout/printf occurs output statement appears in or flush to console window? Need Help!!!
-
Flush is a right way to use in my problem?? Somebody please tell me something ?