Создание таблицы с cout, копирование кода по-разному

Я потратил около 3 часов на создание таблицы с помощью символов ASCII, и в конце я правильно ее создал … Но проблема действительно странная … если я скопирую код таблицы и вставлю его снова в ту же Запрограммируйте его по-разному! Почему так?

Я действительно много потратил на это, и это буквально сводит меня с ума! Это точно такой же код … Пожалуйста, нужна помощь

http://i.stack.imgur.com/MB3MO.png

Код следующий

  #include <iostream>   // Cout e cin
#include <cstdlib>   // System Pause
#include <iomanip>

using namespace std;

int main ()
{

cout<<char(218)<<setfill(char(196))<<setw(12)<<char(194)<<setfill(char(196))<<setw(20)<<char(194)<<setfill(char(196))<<setw(20)<<char(194)<<setfill(char(196))<<setw(20)<<char(191)<<endl;

cout<<char(179)<<left<<setfill(' ')<<setw(11)<<"Algoritmo"<<char(179)<<left<<setfill(' ')<<setw(19)<<"Numero confronti"<<char(179)<<left<<setfill(' ')<<setw(19)<<"Numero copie"<<char(179)<<left<<setfill(' ')<<setw(19)<<"Tempo di esecuzione"<<char(179)<<endl;
cout<<char(195)<<setfill(char(196))<<setw(11)<<char(196)<<setfill(char(196))<<setw(20)<<char(197)<<setfill(char(196))<<setw(20)<<char(197)<<setfill(char(196))<<setw(20)<<char(197)<<char(180)<<endl;
cout<<char(192)<<setfill(char(196))<<setw(11)<<char(196)<<setfill(char(196))<<setw(20)<<char(193)<<setfill(char(196))<<setw(20)<<char(193)<<setfill(char(196))<<setw(20)<<char(193)<<char(217);

cout<<endl;

cout<<char(218)<<setfill(char(196))<<setw(12)<<char(194)<<setfill(char(196))<<setw(20)<<char(194)<<setfill(char(196))<<setw(20)<<char(194)<<setfill(char(196))<<setw(20)<<char(191)<<endl;

cout<<char(179)<<left<<setfill(' ')<<setw(11)<<"Algoritmo"<<char(179)<<left<<setfill(' ')<<setw(19)<<"Numero confronti"<<char(179)<<left<<setfill(' ')<<setw(19)<<"Numero copie"<<char(179)<<left<<setfill(' ')<<setw(19)<<"Tempo di esecuzione"<<char(179)<<endl;
cout<<char(195)<<setfill(char(196))<<setw(11)<<char(196)<<setfill(char(196))<<setw(20)<<char(197)<<setfill(char(196))<<setw(20)<<char(197)<<setfill(char(196))<<setw(20)<<char(197)<<char(180)<<endl;
cout<<char(192)<<setfill(char(196))<<setw(11)<<char(196)<<setfill(char(196))<<setw(20)<<char(193)<<setfill(char(196))<<setw(20)<<char(193)<<setfill(char(196))<<setw(20) <<char(193)<<char(217);cout<<endl;
system ("PAUSE");
return 0;

}

0

Решение

Это связано с обоснованием вашего текста. При первой печати таблицы вы используете left установить обоснование. Вы должны использовать cout << right перед печатью второй таблицы.

Каждый поток имеет набор флагов формата. В начале программы стандартные потоки (например, cout) иметь их adjustfield установлен в right, Вот почему при первой печати таблицы все работает: первая строка кода таблицы правильно принимает выровненный по правому краю текст. Как только вы установите обоснование left во второй строке он остается таким, пока вы его не измените. Таким образом, вы можете удалить другой lefts во второй строке кода вашей таблицы, потому что первой достаточно.

Для правильной работы второго кода таблицы необходимо вернуться к правильному выравниванию. Так что сразу после пустой строки между двумя таблицами, вы должны вставить cout << right;,

2

Другие решения


По вопросам рекламы [email protected]