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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
#1

Ограничение ширины строки при выводе в консоль - C++

31.10.2013, 11:09. Просмотров 1243. Ответов 26
Метки нет (Все метки)

Класс выводит строку в консоли.
Как сделать, чтобы ширина выводимых строк была равна characterWidth = 40,
т.е. после 40 символов был перенос на новую строку?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <string>
#include <iostream>
 
class StringProcessing {
  public:
      StringProcessing() : characterWidth(40),
                     textToBeFormatted("NULL") {}
      
      inline void StringProcessing::initString() {
          textToBeFormatted =
              "text    some text   some text some text   some text some text"
              "text some text  some text    some text some text some text"
              "text    some      text some    text some   text some text some text"
              "text some  text some    text some    text some text some text"
              "text   some     text some text some   text some text some text";
      }
 
      inline void displayString()
        { std::cout << textToBeFormatted << std::endl; }
  private:    
      int characterWidth;
      std::string textToBeFormatted;
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2013, 11:09     Ограничение ширины строки при выводе в консоль
Посмотрите здесь:

Пропадают строки при выводе в консоль - C++
куда-то пропадают строки. например: for(int q=0;q&lt;10;q++){ cout&lt;&lt;q&lt;&lt;&quot;-q&quot;; for(int w=0;w&lt;10;w++){cout&lt;&lt;w&lt;&lt;&quot;-w&quot;; ...

Матрицы в си++ реверс при выводе на консоль - C++
Мне нужно чтобы заданная матрица выводилась на экран не с первого элемента, а с последнего, как так сделать ? #include &lt;iostream&gt; ...

Интервал времени при выводе в консоль - C++
Здравствуйте,пару дней назад подумал о том, можно ли сделать вывод в консоли информации через &quot;cout&quot; по времени. К примеру у меня есть не...

Кодировка символов при выводе в консоль. - C++
Код #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; #include &lt;sstream&gt; #include...

Необработанное исключение по адресу при выводе на консоль - C++
Доброго времени суток. #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; class YearData { public: int day; ...

Теряется часть информации при выводе в консоль - C++
Я пишу игру Пьяницы, и в цикле происходит вывод информации о номинале карты, сравнении этой карты с другой и т.д. Так получается, что...

Заставить консоль всплывать поверх окон при выводе новой информации - C++
Добрый день, Подскажите как реализовать всплытие консоли поверх всех окон? Пишу программу для тестирования, которая будет рыться...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
31.10.2013, 11:13     Ограничение ширины строки при выводе в консоль #2
dimakozyr, Никак. Руками только.
eocron
Кактус
66 / 66 / 6
Регистрация: 23.05.2012
Сообщений: 343
31.10.2013, 11:20     Ограничение ширины строки при выводе в консоль #3
C++
1
2
for(int i = 0; i < s.length()/40 + (bool)(s.length()%40);i++)
   cout<< s.substr(i*40,40)<<endl;
Примерно так.
dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
31.10.2013, 11:30  [ТС]     Ограничение ширины строки при выводе в консоль #4
Цитата Сообщение от eocron Посмотреть сообщение
Примерно так.
Ээ.. и это все? Очень странно, но работает
Просто это тестовое задание в крутую фирму

Добавлено через 1 минуту
А как здесь сделать выравнивание текста по заданной ширине (40 символов)?
Т.е. добавить пробелы, где это необходимо
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
31.10.2013, 11:34     Ограничение ширины строки при выводе в консоль #5
Что-нибудь типа

C++
1
2
3
4
5
6
7
8
      inline void displayString()
      {
         const std::string& s = textToBeFormatted;
         for (int i = 0; i < s.length() / 40 + (bool)(s.length() % 40); ++i)
         {
            std::cout << std::left << std::setfill(' ') << std::setw(40) << s.substr(i * 40, 40) << std::endl;
         }
      }
dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
31.10.2013, 11:40  [ТС]     Ограничение ширины строки при выводе в консоль #6
А можно как-то сделать, чтобы слова не обрезались?
Миниатюры
Ограничение ширины строки при выводе в консоль  
eocron
Кактус
66 / 66 / 6
Регистрация: 23.05.2012
Сообщений: 343
31.10.2013, 11:42     Ограничение ширины строки при выводе в консоль #7
Это так сразу не напишу, конечно, но я бы сделал в лоб: массив из слов и всякие манипуляции с максимальной выборкой из это массива.

Не по теме:

что за фирма?

ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
31.10.2013, 11:56     Ограничение ширины строки при выводе в консоль #8
dimakozyr, Т.е. еще и переносы замутить? Однако.) Может сами попытаетесь сделать?
dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
31.10.2013, 11:58  [ТС]     Ограничение ширины строки при выводе в консоль #9
Цитата Сообщение от ForEveR Посмотреть сообщение
Может сами попытаетесь сделать?
Да уже пытаюсь
SatanaXIII
31.10.2013, 12:02
  #10

Не по теме:

dimakozyr, а вы потом часть зарплаты на развитие форума отдавайте.

Tulosba
31.10.2013, 12:03
  #11

Не по теме:

Цитата Сообщение от ForEveR Посмотреть сообщение
Т.е. еще и переносы замутить?
Еще и на слога разбивать. Хотя в русском языке вроде как разрешили переносить в любом месте слова.
Цитата Сообщение от eocron Посмотреть сообщение
что за фирма?
Наверное MS решила написать новый блокнот с продвинутым режимом "word wrap"

SatanaXIII
31.10.2013, 12:11
  #12

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
Хотя в русском языке вроде как разрешили переносить в любом месте слова.
Действительно?
А где такое можно почитать?

Tulosba
31.10.2013, 12:22
  #13

Не по теме:

Цитата Сообщение от SatanaXIII Посмотреть сообщение
Действительно?
А где такое можно почитать?
Черт его знает. Слышал пару лет назад от знакомого издателя. Может пошутил, конечно.

Ilot
Модератор
Эксперт С++
1807 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
31.10.2013, 12:48     Ограничение ширины строки при выводе в консоль #14
Понимаю, что проблема решена, но я долго мучался что бы написать более менее приличный код без лишних циферок и введения дополнительных переменных. Так что прошу сильно не бить если что не так.
C++
1
2
3
4
5
6
7
8
9
10
void displayString()
{
    string::iterator strIter = textToBeFormatted.begin();
    while(strIter!= textToBeFormatted.end())
    {
        cout.put(*strIter++);
        if (!((strIter - textToBeFormatted.begin()) % characterWidth))
            cout.put('\n');
    }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2013, 13:06     Ограничение ширины строки при выводе в консоль
Еще ссылки по теме:

При выводе на консоль выделить заданную последовательность чисел в матрице скобками - C++
Помогите сделать скобки, в формате как на рисунке: // Matrisa.cpp: определяет точку входа для консольного приложения. // ...

"Неожиданное" закрытие окна при выводе результатов на консоль - C++
Здраствуйте, Уважаемые программисты! Недавно начал учить язык програмирования C++, произошла такакя проблема, пишу-пишу код. И когда...

Ошибка при выводе строки - C++
С указателями работаю не в первый раз, но почему-то возникает ошибка во время работы. int main() { char temp = &quot;hello_world&quot;; ...

Ошибка при выводе строки - C++
Подскажите в чем дело?? #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; using namespace std; class...

При выводе пропускает пустые строки - C++
{ FILE *f1; char c, txt; int n=0; cout&lt;&lt;&quot;Vvedite imia fila &quot;; gets(c); f1=fopen(c,&quot;r&quot;); fscanf (f1, &quot;%d&quot;,...


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

Или воспользуйтесь поиском по форуму:
dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
31.10.2013, 13:06  [ТС]     Ограничение ширины строки при выводе в консоль #15
Цитата Сообщение от Ilot Посмотреть сообщение
Понимаю, что проблема решена, но я долго мучался что бы написать более менее приличный код без лишних циферок и введения дополнительных переменных. Так что прошу сильно не бить если что не так.
Прикольно, все работает
Но она еще не решена, я сейчас мучаюсь, чтоб слова не обрезались
Yandex
Объявления
31.10.2013, 13:06     Ограничение ширины строки при выводе в консоль
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru