Форум программистов, компьютерный форум CyberForum.ru

Постепенный вывод текста - C++

Восстановить пароль Регистрация
 
Rifle
 Аватар для Rifle
25 / 25 / 5
Регистрация: 15.11.2012
Сообщений: 93
Завершенные тесты: 4
08.03.2013, 15:10     Постепенный вывод текста #1
Ребят, подскажите пожалуйста, есть ли какой несложный способ сделать так, чтобы текст в консольном приложении появлялся не мгновенно, а постепенно? Как бы, чтобы создавался эффект печатания?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2013, 15:10     Постепенный вывод текста
Посмотрите здесь:

ввод-вывод текста C++
C++ Постраничный вывод текста
C++ как сделать вывод текста, результата и продолжение текста
Некорректный вывод текста C++
C++ Вывод текста на русском
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Черный ворон
129 / 123 / 6
Регистрация: 31.01.2012
Сообщений: 435
08.03.2013, 15:22     Постепенный вывод текста #2
перед выводом каждой буквы делайте задержку в работе :
C++
1
Sleep(time);
где time - время задержки в миллисекундах
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream.h>
int main()
{
     string a="qwerty";
     int time =200;
     for (int i=0; i< a.length(); i++){
                Sleep(time);
                cout<<a[i];}
     cout<<endl;
     system("pause");
}
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
08.03.2013, 15:28     Постепенный вывод текста #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <thread>
#include <chrono>
 
int main(int argc, char** argv) 
{
    setlocale (0, "Russian");
    
    std::string s = "Ребят, подскажите пожалуйста, есть ли какой несложный "
            " способ сделать так, чтобы текст в консольном приложении появлялся "
            " не мгновенно, а постепенно? Как бы, чтобы создавался эффект печатания?";
    for (auto& x : s) {
        std::this_thread::sleep_for(std::chrono::milliseconds(100));
        std::cout<<x;
    }
    std::cout<<"\n";
    return 0;
}
Rifle
 Аватар для Rifle
25 / 25 / 5
Регистрация: 15.11.2012
Сообщений: 93
Завершенные тесты: 4
08.03.2013, 15:39  [ТС]     Постепенный вывод текста #4
Черный ворон, для Sleep ничего подключать не надо? Компилятор почему-то не распознает у меня эту функцию.
yuron_477, у меня почему-то не находит заголовочный thread. Он входит в стандартные заголовочные файлы?
Использую Visual Studio 2008
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
08.03.2013, 15:56     Постепенный вывод текста #5
Цитата Сообщение от Rifle Посмотреть сообщение
Использую Visual Studio 2008
Походу, там его нет.
Черный ворон
129 / 123 / 6
Регистрация: 31.01.2012
Сообщений: 435
08.03.2013, 16:08     Постепенный вывод текста #6
Rifle, для borland c++ builder'a более ничего подключать не нужно.
для Visual Studio 2008 код будет выглядеть примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "stdafx.h"
#include "iostream"
#include "Windows.h"
 
 
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
 
    string a="qwerty";
     int time =200;
     for (unsigned int i=0; i< a.length(); i++){
                Sleep(time);
                std::cout<<a[i];}    
     std::cout<<endl;
     system("pause");
    return 0;
}
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
08.03.2013, 16:21     Постепенный вывод текста #7
вот посмотри вот эту тему , плюс там ещё мой проект плавного появление всего консольного окна
Замедление действия
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2013, 17:11     Постепенный вывод текста
Еще ссылки по теме:

Вывод текста C++
C++ Вывод текста
C++ Вывод текста

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Rifle
 Аватар для Rifle
25 / 25 / 5
Регистрация: 15.11.2012
Сообщений: 93
Завершенные тесты: 4
08.03.2013, 17:11  [ТС]     Постепенный вывод текста #8
Все, всем спасибо, с выводом разобрался).

Добавлено через 7 минут
Хотя возникла еще другая проблема: как можно так сделать, чтобы по нажатию enter цикл прерывался и выводился сразу весь текст? Делать в цикле запрос на ввод - не вариант, потому что он будет прерывать вывод текста своим ожиданием. Другого что-то ничего пока в голову не приходит.

Добавлено через 31 минуту
Все, снова отбой. Научился прерывать текст с помощью kbhit().
Yandex
Объявления
08.03.2013, 17:11     Постепенный вывод текста
Ответ Создать тему
Опции темы

Текущее время: 01:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru