Russian Qt Forum
Март 28, 2024, 12:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt Creator. Работа с консолью(Ubuntu).  (Прочитано 20157 раз)
Taras.ua
Гость
« : Октябрь 16, 2009, 09:30 »

Мне нужно выводить текст в консоль и считывать текст с консоли, введенный пользователем. Задача элементарная. С выводом проблем нет. А вот вводить текст у меня не получилось.
Есть два вопроса. В самом креаторе заклатка "Application Output" работает только на вывод, или должна принимать параметры?
Если в проджектс-пропертис "ран ин терминал" поставить галочку, то запускается эмулятор терминала. Но в нево программа даже не выводит ничего. Не говоря о вводе пользователем.
Вот код.
Код:
#include <QApplication>
#include <QTextStream>
int main(int argc, char *argv[])
{
    QString result = "111";
    QTextStream out(stdout);
    out << "Qt rocks!" << endl;


    QTextStream in(stdin);
    QString line;
    do
    {
        line = in.readLine();
    }
    while (!line.isNull());

    out<<line<<endl;


}
Подскажите, где ошибка.
« Последнее редактирование: Октябрь 16, 2009, 09:46 от Taras.ua » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Октябрь 16, 2009, 14:24 »

используйте isEmpty вместо isNull
Записан
Taras.ua
Гость
« Ответ #2 : Октябрь 16, 2009, 17:15 »

используйте isEmpty вместо isNull
Это ничего не меняет. Проблема в том, что при использовании QTextStream in(stdin); программа даже ничего не выводит. Тоесть не отрабатывает
Код:
QTextStream out(stdout);
    out<<"Qt rocks!";

У меня просто сложнейший вопрос. КАК выводыть в консоль и считывать с консоли?Непонимающий
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Октябрь 16, 2009, 17:31 »

используйте isEmpty вместо isNull
Это ничего не меняет. Проблема в том, что при использовании QTextStream in(stdin); программа даже ничего не выводит. Тоесть не отрабатывает
Код:
QTextStream out(stdout);
    out<<"Qt rocks!";

У меня просто сложнейший вопрос. КАК выводыть в консоль и считывать с консоли?Непонимающий
У меня прекрасно выводит как на терминал так и в отладчик (см. attachment)

BTW: несколько дней назад я тоже поимел проблемы с консолью и теперь не считаю что это просто Улыбающийся
Записан
Norgat
Гость
« Ответ #4 : Октябрь 24, 2009, 19:11 »

чтобы QTextStream сначала буферизирует передаваемые ему данные, для печать нужно сбросить буфер ф-ей flush().

вот пример кода:

Код:
#include <QtCore/QCoreApplication>
#include <QTextStream>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QTextStream out(stdout);

    out << "Hello World!\n";
    out.flush();

    QTextStream inp(stdin);
    QString str = "";

    out << "BBEDITE CTPOKY: ";
    out.flush();
    inp >> str;
    out << "Bb| BBELI: " << str << endl;

    return 0;
}

сам сидел разбирался прилично))

всё прекрасно работает в как терминале запускаемом из Qt Creatora, так и в обычном терминале моего Убунту)
Записан
Ubuntu_linux
Гость
« Ответ #5 : Апрель 25, 2010, 01:10 »

А по каким причинам у меня ничего не  выводится  в консоли?, хотя сама консоль зупускается і в qt output все  выводится . Непонимающий
Записан
Marat(Qt)
Гость
« Ответ #6 : Апрель 25, 2010, 18:23 »

А по каким причинам у меня ничего не  выводится  в консоли?, хотя сама консоль зупускается і в qt output все  выводится . Непонимающий
CONFIG+=console ?
Записан
Ubuntu_linux
Гость
« Ответ #7 : Апрель 25, 2010, 23:11 »

ДА! вот:
Код
C++ (Qt)
#-------------------------------------------------
#
# Project created by QtCreator 2010-04-12T00:22:22
#
#-------------------------------------------------
 
QT       -= gui
 
TARGET = console_matrix
CONFIG   += console
CONFIG   -= app_bundle
 
TEMPLATE = app
 
 
SOURCES += main.cpp
 

А вот мой код Qt С++:
Код
C++ (Qt)
#include <QtCore/QCoreApplication>
#include <QtDebug>
#include <QTextStream>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
   QCoreApplication a(argc, argv);
 
QTextStream Qcout(stdout);
Qcout <<"gepgmeogmeogoegoergo"<<endl;
Qcout.flush();
 
cout <<"жьупжрьужрьуержьежро" ;
cout.flush();
 
qDebug()<<"Вот несколько чисел";
 
   return a.exec();
}
« Последнее редактирование: Апрель 25, 2010, 23:21 от Ubuntu_linux » Записан
Ubuntu_linux
Гость
« Ответ #8 : Апрель 27, 2010, 20:17 »

? Непонимающий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.102 секунд. Запросов: 22.