The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Манипуляторы в программе срабатывают по разному на разных пл..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Манипуляторы в программе срабатывают по разному на разных пл..."  
Сообщение от andrystepa (ok) on 11-Сен-06, 12:47 
У меня почему-то при компиляции одного и того же кода на платформах Windows и Linux манипуляторы работают по разному. Например такая программа:

int main() {
    char sel;
    do{
        cout<<"Введите данные о среднемесячном траффике:\n";
        putdata(aver4month, 12);
        cout<<"Введите текущие даные об траффике за каждый месяц: \n";
        putdata(curr4month, 12);
        cout<<"Сравнительная таблица траффика за последний год: \n";
        showtable(aver4month, curr4month, 12);
        cout<<"Чтобы продолжить нажмите Y, для выхода нажмите любую букву >";
        cin>>sel;
        cout<<endl;
    }while(sel=='Y' || sel=='y');
    return 0;
}
char* getmonth(int i) {
    char* temp;
    switch(i) {
        case 0:
            temp="Январь";
            break;
        case 1:
            temp="Февраль";
            break;
        case 2:
            temp="Март";
            break;
        case 3:
            temp="Апрель";
            break;
        case 4:
            temp="Май";
            break;
        case 5:
            temp="Июнь";
            break;
        case 6:
            temp="Июль";
            break;
        case 7:
            temp="Август";
            break;
        case 8:
            temp="Сентябрь";
            break;
        case 9:
            temp="Октябрь";
            break;
        case 10:
            temp="Ноябрь";
            break;
        case 11:
            temp="Декабрь";
            break;
        default:
            temp="Неверный номер месяца!";
    }
    return temp;
}
void putdata(int mas[], int sizemas) {
    for(int i=0; i<sizemas; i++) {
        cout<<"Введите данные за "<<getmonth(i)<<" месяц > ";
        cin>>mas[i];}
}
void showtable(int masaver[], int mascurr[], int size) {
    cout<<setw(15)<<"Месяц"<<" | ";
    cout<<setw(20)<<"Средний траффик"<<" | ";
    cout<<setw(15)<<"В текущем году"<<" | ";
    cout<<setw(10)<<"Разница"<<endl;
    for(int i=0; i<size; i++) {
        cout<<setw(15)<<getmonth(i)<<" | ";
        cout<<setw(20)<<masaver[i]<<" | ";
        cout<<setw(15)<<mascurr[i]<<" | ";
        cout<<setw(10)<<(mascurr[i]-masaver[i])<<endl;
    }

Компилирую в Visual Studio 2005, запускаю - выдает аккуратную табличку, как и задумывалось. Компилю в Linux (правда, в Linux для создания make файла я пользуюсь утилитой qmake -не силен я в создании make файлов вручную :-(( ). Запускаю - все сторочки таблицы съехали относительно друг друга. Почему? Может под линухом надо как то по-другому применять манипуляторы?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Манипуляторы в программе срабатывают по разному на разных пл..."  
Сообщение от Bob email(??) on 11-Сен-06, 21:08 
Может, шрифты разные?
Под виндой моноширный, а под Линухом - нет.
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру