выравнивание консольного вывода
От: Ael США  
Дата: 03.07.04 09:47
Оценка:
Вывод на консоль чисел и их квадратов в двух выровненных столбцах.
#include <iostream>
#include <string>
const int iUpTo=100;
int main()
{
    char* charsSpace=(char*)malloc(32);
    _itoa(iUpTo,charsSpace,10);
    std::string strSpace=std::string(charsSpace);
    
    std::string::size_type szMax=strSpace.size();
    int n;
    for (int i=0; i<=iUpTo;i++){
        n=szMax+1-(std::string(_itoa(i,charsSpace,10)).size());
        std::cout <<i <<std::string(n,' ')  <<i*i <<std::endl;    
    }
    free((void*)charsSpace);
    std::string strDummy;
    std::cin >> strDummy;
    return 0;
}

Меня беспокоит выделенная строка. То есть только для того, чтобы определить размер разрыва между столбцами, я создаю копирую символьное представление числа в область памяти на которую указывает charsSpace, потом создаю std::string и получаю его size(). Как добиться того же эффекта выравнивания более производительно?
Спасибо!
... << RSDN@Home 1.1.3 stable >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.