Я потратил около 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;
}
Это связано с обоснованием вашего текста. При первой печати таблицы вы используете left
установить обоснование. Вы должны использовать cout << right
перед печатью второй таблицы.
Каждый поток имеет набор флагов формата. В начале программы стандартные потоки (например, cout
) иметь их adjustfield
установлен в right
, Вот почему при первой печати таблицы все работает: первая строка кода таблицы правильно принимает выровненный по правому краю текст. Как только вы установите обоснование left
во второй строке он остается таким, пока вы его не измените. Таким образом, вы можете удалить другой left
s во второй строке кода вашей таблицы, потому что первой достаточно.
Для правильной работы второго кода таблицы необходимо вернуться к правильному выравниванию. Так что сразу после пустой строки между двумя таблицами, вы должны вставить cout << right;
,