Добрый день, уважаемые участники форума!
Помогите решить задачу выравнивания текста на C++:
из файла дан текст и дана длина требуемой строки - необходимо выровнять строки по центру.
Для меня загвоздка состоит в том, что
нужно использовать средства стандартной библиотеки , в С++ -
я начинающий.
Задачу чтения из файла я уже решил. У меня есть класс Text (с полем string Content) и метод выравнивания. В классе уже хранится строка с текстом. Как подступиться к задаче выравнивания? Можно ли это сделать легко используя STL? (В своих попытках я постоянно сбиваюсь на посимвольный разбор строки)
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
class Text
{
public:
void GetText(ifstream &in);
void AlignCenter(int width);
string Str;//
};
void Text::GetText(ifstream &in)
{
if( in.is_open() )
{
in.seekg(0, ios::end);
Str.resize(in.tellg());
in.seekg(0, ios::beg);
in.read((char *)Str.data(), Str.size());
}
}
void Text::AlignCenter(int width)
{
//do smth...
}
int main(void)
{
Text myText;
ifstream myfile("example.txt", ios::binary);// ios::binary ???? см. код GetText
myText.GetText(myfile);
cout << "Before:\n" << myText.Str;
//
cout << "\nAfter:\n" << myText.Str;
return 0;
}