Justowanie tekstu w konsoli

Odpowiedz Nowy wątek
2014-12-16 18:40
0

Tak jak w temacie, jak to zrobić?

Pozostało 580 znaków

2014-12-16 18:53
0
  1. Dodając odpowiednią ilość spacji
  2. Używając liczbę lub znak * w formacie printf
  3. Jeszcze kilka innych sposobów
    Może podaj co chcesz osiągnąć.

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2014-12-16 18:55
0
 
// justowanieTekstu.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <sstream>
#include <list>
 
const int pageWidth = 78;
typedef std::list<std::string> WordList;
 
WordList splitTextIntoWords( const std::string &text )
{
    WordList words;
    std::istringstream in(text);
    std::copy(std::istream_iterator<std::string>(in),
              std::istream_iterator<std::string>(),
              std::back_inserter(words));
    return words;
}
 
void justifyLine( std::string line )
{
    size_t pos = line.find_first_of(' ');
    if (pos != std::string::npos) {
        while (line.size() < pageWidth) {
            pos = line.find_first_not_of(' ', pos);
            line.insert(pos, " ");
            pos = line.find_first_of(' ', pos+1);
            if (pos == std::string::npos) {
                pos = line.find_first_of(' ');
            }
        }
    }
    std::cout << line << std::endl;
}
 
void justifyText( const std::string &text )
{
    WordList words = splitTextIntoWords(text);
 
    std::string line;
    for (const std::string& word : words) {
        if (line.size() + word.size() + 1 > pageWidth) { // next word doesn't fit into the line.
            justifyLine(line);
            line.clear();
            line = word;
        } else {
            if (!line.empty()) {
                line.append(" ");
            }
            line.append(word);
        }
    }
    std::cout << line << std::endl;
}
 
int main()
{
    justifyText("This small code sample will format a paragraph which "
        "is passed to the justify text function to fill the "
        "selected page with and insert breaks where necessary. "
        "It is working like the justify formatting in text "
        "processors.");
    getchar();
    return 0;
}

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0