Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Посимвольный вывод текста С++  (Прочитано 3899 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн a10nan

  • Автор темы
  • Любитель
  • *
  • Сообщений: 78
  • Неофит
    • Просмотр профиля
Посимвольный вывод текста С++
« : 07 Августа 2009, 05:58:28 »
Доброго времени суток увожаемые програмисты. Я в програмировании новичёк, так что прошу сильно не пинать. Пишу щаз не большую програмульку, всю информацию по возможности ищу в гугле, но вот столкнулся с проблемкой и ни как не могу найти на неё ответ.
как в С++ организовать посимвольный вывод текста в терминал (приложение консольное) причём вывод должен происходить скажем каждые 0.1 сек.

За ранее благодарю за ответы.
Errare humanum est.

Asus S56CB-XO046H (Ubuntu 14.04)

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Посимвольный вывод текста С++
« Ответ #1 : 07 Августа 2009, 06:18:47 »
способов мильён.
С++ стиль:
таки прочитать руководство по stl а именно часть про потоки ввода/вывода.
char ch = 'A';
std::cout.put(ch);

ну и я ни за что не поверю что у тебя не получилось написать что-то типа
char ch = 'A';
std::cout << ch;

Сишный стиль:
man printf со компания (ВНИМАТЕЛЬНО читаем спецификацию форматированного вывода. там есть вывод отдельных символов), putc со компания, write на худой конец

хотя гораздо лучше нагуглить УЧЕБНИК по языку Си и попробовать немного изучить язык на которм собираешься писать. твои проблеммы - это самые первые уроки по языку.

по поводу таймера - mam nanosleep

Оффлайн a10nan

  • Автор темы
  • Любитель
  • *
  • Сообщений: 78
  • Неофит
    • Просмотр профиля
Re: Посимвольный вывод текста С++
« Ответ #2 : 07 Августа 2009, 06:26:38 »
char ch = 'A';
std::cout << ch;
Это стандартный вывод c++

char ch = 'A';
std::cout.put(ch);
Это не совсем понятно, а конкретнее не понятно какую роль играет .put

С printf тоже знаком, меня интересует сам вопрос таймера а не вывода, я наверное не правильно вырозился поэтому ты не так понял, приношу свои извенения за это.

а вот за это: mam nanosleep
Огромное спосибо буду копать в эту сторону, попробую разобраться.
Errare humanum est.

Asus S56CB-XO046H (Ubuntu 14.04)

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Посимвольный вывод текста С++
« Ответ #3 : 07 Августа 2009, 06:40:50 »
cout это экземпляр класса ostream привязанный к стандартному выовду. как и у любого класса у cout могут быть методы. один из этих методов это put(), который печатает в поток (в данном случае на стандартный вывод) символ. чем тебя удивляет простой вызов метода? О_о

mam это я конечно очепятался =) но думаю все догадались что за команда скрывается там.

Оффлайн a10nan

  • Автор темы
  • Любитель
  • *
  • Сообщений: 78
  • Неофит
    • Просмотр профиля
Re: Посимвольный вывод текста С++
« Ответ #4 : 07 Августа 2009, 07:11:01 »
cout это экземпляр класса ostream привязанный к стандартному выовду. как и у любого класса у cout могут быть методы. один из этих методов это put(), который печатает в поток (в данном случае на стандартный вывод) символ. чем тебя удивляет простой вызов метода? О_о

mam это я конечно очепятался =) но думаю все догадались что за команда скрывается там.
Спосибо за разъяснение, терь понятно, а на счёт mam это понятно что имелось ввиду man)
Только вот ман ругается No manual entry for nanosleep =(
Errare humanum est.

Asus S56CB-XO046H (Ubuntu 14.04)

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Посимвольный вывод текста С++
« Ответ #5 : 07 Августа 2009, 13:58:53 »
yurik@ubuntu:~$ dpkg -l | grep manpages
ii  manpages                                             2.77-1                                Manual pages about using a GNU/Linux system
ii  manpages-dev                                         2.77-1                                Manual pages about using GNU/Linux for devel
ii  manpages-ru                                          0.98-4                                Russian translations of Linux manpages
Все стоит? (ru - конечно же можно не устанавливать)

Оффлайн aya

  • Участник
  • *
  • Сообщений: 196
    • Просмотр профиля
Re: Посимвольный вывод текста С++
« Ответ #6 : 07 Августа 2009, 15:21:53 »
Вот, что первое пришло в голову, компилировать с "-lrt".
ps Если нужно более маленькое время (меньше секунды), то изучите `tv_nsec`.
g++ -lrt filename.cpp
#include <iostream>
#include <time.h>

#define SLEEPTIME 1

using namespace std;
int main(){
struct timespec before, after;

while(true){
clock_gettime(CLOCK_REALTIME, &before); //Получаем стартовое время.
while(true){
clock_gettime(CLOCK_REALTIME, &after); //Получаем текущее время.
if( (after.tv_sec - before.tv_sec) >= SLEEPTIME) break; //Вычисляем разницу во времени, если она больше SLEEPTIME, то выходим из цикла и печатаем.
}
cout << "A" << endl;
}

return 0;
}
« Последнее редактирование: 07 Августа 2009, 15:24:30 от aya »

 

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