Перейти к содержанию
    

Чтение с консольного проекта.

Создал в QT консольный проект и пытаюсь считать вводимую строку.

while (1)
    {
        ch_ptr = fgets(cons_str, 128, stdin);
        if (ch_ptr != NULL)
        {
          printf("%s", cons_str);
        }
    }

ничего не считывается.

Консольный проект в windows работает - я считываю строку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да запомните уже наконец, что библиотека называется Qt, а QT -- это QuickTime.

Напишите программу без всяких Qt, посмотрите, как себя ведёт этот же цикл.

B зачем вы пишете в раздел, который называется "Linux", если у вас

1 час назад, jenya7 сказал:

Консольный проект в windows работает

Напишите такую консольную же программу в Linux и посмотрите, как она себя ведёт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 minutes ago, andrew_b said:

Да запомните уже наконец, что библиотека называется Qt, а QT -- это QuickTime.

Напишите программу без всяких Qt, посмотрите, как себя ведёт этот же цикл.

B зачем вы пишете в раздел, который называется "Linux", если у вас

Напишите такую консольную же программу в Linux и посмотрите, как она себя ведёт.

без всяких Qt смысла нет - в Qt все отлично работает. лучшей среды разработки я пока не нашел.

я написал два консольных проекта - в Windows и в Linux. Тот который в Windows - работает,  а тот который в Linux - не работает.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

моя ошибка. не туда вставил код. все работает.

Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

так работает

ch_ptr = fgets(cons_str, 256, stdin);
if (ch_ptr != nullptr)
{
    COMPARSER_ParseCommand(cons_str);
}

но чтение из консоли блокирующая операция. если ничего не пришло я застрял в fgets. это решаемо как то?

 

выделил чтение с консоли в отдельный тред.

Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пример.

Читаем man select, man eselect, man poll…

Изменено пользователем Eddy_Em

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/29/2019 at 3:12 AM, Eddy_Em said:

Пример.

Читаем man select, man eselect, man poll…

 

 

Или создаем новые задачи или потоки, но надо будет синхронизировать. select проще.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...