Как можно сделать таблицу в С++?

Мне задали задание, сделать таблицу в с++? Я сделал с помощью char. Но это слишком некрасивый код, можно ли как то по другому?

27. #include <iostream>
28. #include <math.h>
29. #include <iomanip>
30. using namespace std;
31. 
32. int main()
33. {
34.     bool log_true = 1;
35.     cout << boolalpha << log_true << endl;
36.     cout << setiosflags(ios::left) << (char)201 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
37.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
38.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
39.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)187 << endl;
40.     cout << (char)186 << setw(30) << "Operation" << "Result\t" << (char)186 << endl;
41.     cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
42.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
43.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
44.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
45.     int x, y, z, num;
46.     x = 90.77;
47.     cout << (char)186 << setw(30) << "x" << x << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
48.     cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
49.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
50.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
51.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
52.     y = 995;
53.     cout << (char)186 << setw(30) << "y" << y << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
54.     cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
55.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
56.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
57.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
58.     z = 677;
59.     cout << (char)186 << setw(30) << "z" << z << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
60.     cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
61.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
62.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
63.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
64.     cout << (char)186 << setw(30) << "~x" << ~x << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
65.     cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
66.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
67.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
68.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
69.     cout << (char)186 << setw(30) << "~y" << ~y << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
70.     cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
71.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
72.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
73.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
74.     cout << (char)186 << setw(30) << "~z" << ~z << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
75.     cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
76.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
77.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
78.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
79.     cout << (char)186 << setw(30) << "x^z" << oct << (x ^ z) << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
80.     cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
81.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
82.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
83.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
84.     cout << (char)186 << setw(30) << "y|z" << hex << (y | z) << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
85.     cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
86.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
87.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
88.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
89.     cout << (char)186 << setw(30) << "y&x" << dec << (y & x) << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
90.     cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
91.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
92.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
93.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
94.     cout << (char)186 << setw(30) << "y>>2" << oct << (y >> 2) << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
95.     cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
96.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
97.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
98.         << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
99.     cout << (char)186 << setw(30) << "x<<3" << hex << (x << 3) << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
100.        cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
101.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
102.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
103.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
104.        cout << (char)186 << setw(30) << "9>3" << (9 > 3) << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
105.        cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
106.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
107.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
108.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
109.        cout << (char)186 << setw(30) << "11<2" << (11 < 2) << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
110.        cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
111.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
112.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
113.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
114.        cout << (char)186 << setw(30) << "2>=5" << (2 >= 5) << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
115.        cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
116.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
117.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
118.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
119.        cout << (char)186 << setw(30) << "9<=9" << (9 <= 9) << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
120.        cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
121.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
122.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
123.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
124.        cout << (char)186 << setw(30) << "14==4" << (14 == 4) << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
125.        cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
126.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
127.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
128.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
129.        cout << (char)186 << setw(30) << "2!=13" << (2 != 13) << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
130.        cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
131.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
132.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
133.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
134.        num = 10;
135.        cout << (char)186 << setw(30) << "!(6>8) && (num==num)" << (!(3.23 > 8) && (num == num)) << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
136.        cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
137.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
138.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
139.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
140.        cout << (char)186 << setw(30) << "(num>=11) || (9<=5)" << ((num >= 11) || (9 <= 5)) << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
141.        cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
142.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
143.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
144.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
145.        cout << (char)186 << setw(30) << "!(x<5) && !(y>=7) || (z!=y)" << (!(x < 5) && !(y >= 7) || (z != y)) << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
146.        cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
147.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
148.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
149.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
150.        x = 01, y = 02;
151.        cout << (char)186 << setw(30) << "x" << x << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
152.        cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
153.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
154.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
155.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
156.        cout << (char)186 << setw(30) << "y" << y << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
157.        cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
158.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
159.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
160.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
161.        cout << (char)186 << setw(30) << "x&у" << (x & y) << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
162.        cout << (char)204 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
163.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
164.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
165.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)185 << endl;
166.        cout << (char)186 << setw(30) << "x&&y" << (x && y) << (char)255 << (char)255 << (char)255 << (char)255 << (char)255 << (char)186 << endl;
167.        cout << (char)200 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
168.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
169.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205
170.            << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)188 << endl;
171.        return 0;
172.    }

Ответы (1 шт):

Автор решения: Mikhailo

Можно просто записать текст в 866 кодировке без проблем.

Но если очень нужно - можно собрать эти строки из отдельных char, как у вас, но один только раз!

#include <iostream>
#include <math.h>
#include <iomanip>
#include <sstream>
using namespace std;

const char* up = "╔═══════════════════════════════════════╗\n";
const char* hr = "╠═══════════════════════════════════════╣\n";
const char* dn = "╚═══════════════════════════════════════╝\n";

template<class T>
void out(const char* name, T t,
         decltype(dec) fmt = dec,
         bool h = true) {
    ostringstream os;
    os << "║ " << left << setw(30) << name 
       << fmt << boolalpha << t;
    string s = os.str();

    while (s.size() < 40) s += ' ';

    s += "║\n";
    cout << s;

    if (h) cout << hr;
    }


int main() {
    bool log_true = 1;
    cout << boolalpha << log_true << endl;
    cout << up;
    out("Operation", "Result");
    int x, y, z, num;
    x = 90.77;
    out("x", x);
    y = 995;
    out("y", y);
    z = 677;
    out("z", z);              out("~x", ~x);            
    out("~y", ~y);            out("~z", ~z);        
    out("x^z", x ^ z, oct);   out("y|z", y | z, hex);
    out("y&x", y & x);        out("y>>2", y >> 2, oct); 
    out("x<<3", x << 3, hex); out("9>3",   9 > 3);  
    out("11<2",  11 < 2);     out("2>=5",  2 >= 5);
    out("9<=9",  9 <= 9);     out("14==4", 14 == 4);
    out("2!=13", 2 != 13);
    num = 10;
    out("!(6>8) && (num==num)", (!(3.23 > 8) && (num == num)));
    out("(num>=11) || (9<=5)", ((num >= 11) || (9 <= 5)));
    out("!(x<5)&&!(y>=7)||(z!=y)", (!(x<5)&&!(y>=7)||(z!=y)));
    x = 01, y = 02;
    out("x", x);          out("y", y);
    out("x&у", (x & y));  out("x&&y", (x && y), dec, false);
    cout << dn;
    }
→ Ссылка