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.
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()
}
In an attached file output.png Enter two numbers is not written. As i know i have to enter two numbers then i entered 2 3 but out.txt contain the whole program output like:
Enter two numbers 2 3
But problem is with console window.
Bookmarks