Important: Please read the Qt Code of Conduct -

Need help!!!!! Problem in running a program with the help of 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 :

    using namespace std;
    int main()
    int a,b;
    cout<<"Enter two numbers";
    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.

  • Please introduce code wrappings into your post. For your little program it is not really required, but anyway the code wrappings code sections easier to read.

    This is a buffer problem. Try a "flush": to make sure that the text is written.

  • @
    bool MainWindow::run_file()
    QMessageBox msgBox;
    QString program = "cons.bat";
    QString st="PRESS OKK!!";
    QStringList arguments;
    QProcess *proc = new QProcess(this);




    void MainWindow::display_output()

    QFile file&#40;"out.txt"&#41;;
    if(!;) {
            QMessageBox::information(0, "error", file.errorString());
    //QTextStream str(&file);
    QString out_str;
    while (!file.atEnd())


  • In previous I have forgotten to give the "link to code wrappings": for some reason.
    I will introduce them this time.

    [quote author="koahnig" date="1391594342"]
    This is a buffer problem. Try a "flush": to make sure that the text is written.[/quote]
    I think this is still valid. Try a flush on cout there.

  • I think flush is used to delete cout statements but i don't want this. I want cout statement should print on console window. Console window is able to take input but unable to show cout statements.

  • No, flush writes actually out. "Read the comments which are given through this link.":

    Typically also cout is buffered until enough to write. So flush makes sure that information is pushed out.

  • Can you help me how to use flush in my code?

Log in to reply