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

выравнивание текста по запросу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Решение диф. уравнения для колебаний методом Рунге—Кутты 4го порядка.(С++) http://www.cyberforum.ru/cpp-beginners/thread409454.html
Ребят помогите пожалуйста решить такое на C++ уравнение x''=(-w^2)*x где w-const там замену нужно сделать что то вроде y=x' и y'=x'' и 2 раза через стандартную схему перегнать , но что то не получается , буду очень признателен. Добавлено через 21 час 52 минуты // runge-runge.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream>
C++ Деление строки на подстроки написать программу разбивающую строки на подстроки в зависимости от введенного к (количество подстрок) на языке С, не знаю как сделать, подскажите пожалуйста, вроде элементарная задача... http://www.cyberforum.ru/cpp-beginners/thread409451.html
C++ Количество пятниц 13
Доброго времени суток. Помогите пожалуйста решить задачу. Необходимо определить количество пятниц 13 в период с 1900 года по 2010 год с одним условием: код программы не должен содержать циклов. Заранее спасибо.
Сортировка строк в файле C++
Доброго времени суток. Помогите пожалуйста решить задачу. Имеется файл, в котором в каждой строке записаны данные в виде "Имя Фамилия количество баллов" (от 0 до 20). Программа должна предлагать записать в файл дополнительные данные и по решению пользователя отсортировать строки по баллам или по фамилии. Каждое действие нужно описать в отдельной функции. Заранее спасибо
C++ Обход деревьев http://www.cyberforum.ru/cpp-beginners/thread409433.html
Здравствуйте, мне нужно обойти два дерева и информацию из одного дерева перенести в другое. #include <iostream> #include <conio.h>
C++ Написать программу, создающую два потока, которые выполняются в одном адресном пространстве (в одном процессе) Здравствуйте! Есть задание: Написать программу, создающую два потока, которые выполняются в одном адресном пространстве (в одном процессе). Их разделяемый ресурс - целочисленный массив, который содержит данные совместного использования. Потоки должны обрабатывать массив поочередно. Использовать критическую секцию для синхронизации. Пример обработки массива: нахождение суммы всех элементов,... подробнее

Показать сообщение отдельно
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89

выравнивание текста по запросу - C++

18.12.2011, 01:05. Просмотров 707. Ответов 0
Метки (Все метки)

Доброго времени суток! Я тут сделал задание, которое заключается в том, что надо разработать программу, выполняющую действия: Выравнивание текста по правой границе. Правая граница определяется как сумма длины максимальной строки и некоторого числа Δ>0. Каждый символ табуляции во входном файле заменяется на n пробелов (1<=n<=8).

код программы:

Код
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main() {
 const int len=255; // Максимально допустимая длина строк
 int delta, n;
 printf("Enter the values of delta and n:\n");
 scanf("%d%d", &delta, &n);
 // Открываем входной файл
 char fn1[len]; // Имя входного файла
 printf("Enter input file name: ");
 scanf("%s", fn1);
 FILE* fin = fopen(fn1, "rt");
 if (!fin) {	
  printf("\nCouldn't open file!\n");
  getch();
  return 1;
 }
 // Определяем максимальную длину строки во входном файле
 char line[len]; // Строка
 int max_len = 0;
 while (fgets(line, len, fin)) { // Пока не закончился файл
  int current_len = strlen(line);
  // Считаем знаки табуляции
  for (int i=0; i<strlen(line); i++)
   if (line[i] == '\t')
    current_len += n-1;
  if (current_len > max_len)
   max_len = current_len;
 }
 // Создаем выходной файл
 char fn2[len]; // Имя выходного файла
 printf("Enter output file name: ");
 scanf("%s", fn2);
 FILE* fout = fopen(fn2, "w+t");
 if (!fout) {
  printf("\nCouldn't create file!\n");
  getch();
  return 2;
 }
 // Записываем отформатированные строки в выходной файл
 rewind(fin);
 while (fgets(line, len, fin)) { // Пока не закончился файл
  // Считаем знаки табуляции
  int current_len = strlen(line);
  for (int i=0; i<strlen(line); i++)
   if (line[i] == '\t')
    current_len += n-1;
  // Записываем пробелы в начале выходной строки
  char line_out[len]; // Строка
  for (i=0; i<max_len+delta-current_len; i++)
   line_out[i] = ' ';
  int k = max_len+delta-current_len;
  for (i=0; i<strlen(line); i++)
   if (line[i] == '\t') {
    for (int j=0; j<n; j++)
     line_out[k+j] = ' ';
    k += n;
   } else
    line_out[k++] = line[i];

  line_out[k] = '\0';
  fputs(line_out, fout);
 }
 fclose(fin); // Закрываем входной файл
 fclose(fout); // Закрываем выходной файл
 getch();
 return 0;
}
Нужно модифицировать эту программу таким образом, чтобы по запросу она могла выравнивать текст либо по правой границе, либо по левой. Подскажите, что нужно добавить...

Добавлено через 15 часов 45 минут
Все еще актуально)

Добавлено через 6 часов 39 минут
ну помогите..)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru