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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.64
Nadin_
0 / 0 / 0
Регистрация: 12.01.2011
Сообщений: 13
#1

Выровнять текст по левому краю - C++

21.01.2011, 10:01. Просмотров 3008. Ответов 6
Метки нет (Все метки)

Доброго времени суток.Помогите пожалуйста осталась одна задача,а я понятия не имею как её делать.
Нужно написать обработчик текстовых файлов,чтоб создавала текстовый файл,в котором текст выравнивался по левому краю(без переносов) с сохранением абзацев.
Пожалуйста можно без файлов(с консоли) даже сделать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2011, 10:01     Выровнять текст по левому краю
Посмотрите здесь:

Открыть файл, выровнять текст по правому краю и слева добавить номер строки C++
Дан файл с абзацем, выровненым по левому краю, надо отформатировать по правому краю C++
Отформатировать текст по правому краю C++
C++ Разработать программу, которая разбивает заданный текст на две колонки и форматирует их по правому краю (без переноса).
C++ Выравниваем строки по правому и левому краям
Выравнивание строки по левому краю до заданной длины C++
Добавить в конец каждой строки необходимо количество «*» что бы выровнять текст по правому краю большей строки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nadin_
0 / 0 / 0
Регистрация: 12.01.2011
Сообщений: 13
22.01.2011, 12:47  [ТС]     Выровнять текст по левому краю #2
Плиз.Может у кого то была такая задача или хотя бы подскажите алгоритм.
lemegeton
2915 / 1344 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
22.01.2011, 13:01     Выровнять текст по левому краю #3
Абзац определяется переносом строки?
Nadin_
0 / 0 / 0
Регистрация: 12.01.2011
Сообщений: 13
22.01.2011, 13:23  [ТС]     Выровнять текст по левому краю #4
Наверное.
lemegeton
2915 / 1344 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
22.01.2011, 13:45     Выровнять текст по левому краю #5
Не самая лучшая имплементация, зато сегодня. Перевод строки -- разделитель абзацев.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <cstring>
#include <cstdio>
 
int main(int argc, char *argv[]) {
  int buffer_size = 65535; // размер буфера для чтения
  int align_size = 80; // размер, по которому будет выравниваться текст
  const char *file_name = "text.txt"; // файл, из которого будет читаться текст
  char *buffer = new char[buffer_size];
 
  FILE *in_file = fopen(file_name, "r");
  if (in_file == NULL)
    printf("Error opening %s.\n", file_name);
  else
    while (!feof(in_file))
      if (fgets(buffer, buffer_size, in_file)) {
        char *start = buffer;
        char *end = buffer + strlen(buffer);
        char *this_end = NULL;
        do {
          this_end = start + align_size;
          if (this_end < end) {
            while (*this_end != ' ' && this_end != start) --this_end;
            if (*this_end == ' ') *this_end = '\n';
            start = this_end + 1;
          } else {
             this_end = end;
          }
        } while (this_end != end);
        printf("%s", buffer);
      }
  fclose(in_file);
 
  delete [] buffer;
  return 0;
}
Nadin_
0 / 0 / 0
Регистрация: 12.01.2011
Сообщений: 13
22.01.2011, 14:03  [ТС]     Выровнять текст по левому краю #6
А куда результат заносится?или где отображается?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2011, 17:32     Выровнять текст по левому краю
Еще ссылки по теме:

Выравнивание по правому краю введенного текста C++
Нужно выровнять текст C++
C++ Выравнивание текста по правому краю
Выровнять текст по вертикали в окне ввода C++
Выровнять текст по правому краю так, чтобы каждая строка заканчивалась знаком препинания или одним пробелом C++

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

Или воспользуйтесь поиском по форуму:
lemegeton
2915 / 1344 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
22.01.2011, 17:32     Выровнять текст по левому краю #7
Результат выводится в стандартный вывод, чаще всего это консоль, в которой запускается программа.
Yandex
Объявления
22.01.2011, 17:32     Выровнять текст по левому краю
Ответ Создать тему
Опции темы

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