1
1
#define NOMINMAX
2
2
#define WHITE FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE
3
3
#define YELLOW FOREGROUND_RED | FOREGROUND_GREEN
4
- #define BGREEN FOREGROUND_GREEN | FOREGROUND_INTENSITY
4
+ #define B_RED FOREGROUND_RED | FOREGROUND_INTENSITY
5
+ #define B_GREEN FOREGROUND_GREEN | FOREGROUND_INTENSITY
6
+ #define B_BLUE FOREGROUND_BLUE | FOREGROUND_INTENSITY
5
7
6
8
#include < iostream>
7
9
#include < string>
@@ -14,54 +16,82 @@ using namespace std;
14
16
15
17
int main () {
16
18
19
+ // Promìnné
17
20
string ans;
18
- UINT codepage;
21
+ UINT codepage = 1250 ;
19
22
string sLocale ;
20
23
HANDLE hConsole = GetStdHandle (STD_OUTPUT_HANDLE);
21
24
25
+ // Základní nastavení
22
26
setlocale (LC_ALL, " cs_CZ" );
23
- SetConsoleTextAttribute (hConsole, YELLOW);
27
+ SetConsoleCP (1250 );
28
+ SetConsoleTextAttribute (hConsole, B_RED);
24
29
25
- cout << " Chcete editovat nastavení? (ano/ne): " ;
30
+ cout << " Editovat adv. nastavení? (ano/ne): " ;
26
31
cin >> ans;
27
32
28
33
if (ans == " ano" ) {
29
34
35
+ Q1:
30
36
cout << " \n Prodleva mezi repeticemi (ms): " ;
31
37
cin >> delay;
32
- cout << " Prodleva nastavena na základní (" << delay << " )ms.\n\n " ;
38
+
39
+ if (!cin) {
40
+
41
+ flushCin (" Neplatná prodleva. Zadejte jinou." );
42
+ goto Q1;
33
43
34
- cout << " Codepage: " ;
44
+ }
45
+ Q2:
46
+ cout << " \n Codepage: " ;
35
47
cin >> codepage;
36
-
37
- cout << " Locale: " ;
38
- cin >> sLocale ;
39
48
49
+ if (!cin) {
50
+
51
+ flushCin (" Neplatný codepage. Zadejte jiný." );
52
+ goto Q2;
53
+
54
+ }
55
+ Q3:
56
+ cout << " \n Locale: " ;
57
+ cin >> sLocale ;
58
+
59
+ if (!cin || sLocale .length () < 4 || sLocale .length () > 10 ) {
60
+
61
+ flushCin (" Neplatný locale. Zadejte jiný." );
62
+ goto Q3;
63
+
64
+ }
65
+
66
+ SetConsoleTextAttribute (hConsole, B_GREEN);
67
+ cout << " \n Nastaveno.\n " ;
40
68
}
41
- else { // Cokoliv jiného než "ano" se bere jako ne
69
+ else { // Cokoliv jiného než "ano" se bere jako ne
42
70
43
71
delay = 30 ;
44
- cout << " \n Prodleva nastavena na základní (" << delay << " ms).\n " ;
45
-
46
72
codepage = 1250 ;
47
- locale = " cs_CZ" ;
73
+ sLocale = " cs_CZ" ;
74
+
75
+ SetConsoleTextAttribute (hConsole, B_GREEN);
76
+ cout << " \n Prodleva nastavena na základní (" << delay << " ms).\n " ;
77
+ cout << " Locale nastaven na základní (" << sLocale << " ).\n " ;
78
+ cout << " Codepage nastaven na základní (" << codepage << " ).\n " ;
48
79
49
80
}
50
- setlocale (LC_ALL, sLocale );
51
- cout << " Locale nastaven na základní (" << sLocale << " ).\n " ;
52
- SetConsoleCP (codepage);
53
- cout << " Codepage nastaven na základní (" << codepage << " ).\n\n " ;
54
81
55
- cout << " (c) Petr Šácha 2022. Podporuje diakritiku.\n " ;
56
- cout << " Použitím programu souhlasíte se samostatností Míkovic.\n " ;
82
+ setlocale (LC_ALL, sLocale .c_str ());
83
+ SetConsoleCP (codepage);
84
+
85
+ SetConsoleTextAttribute (hConsole, WHITE);
86
+ cout << " \n (c) Petr Šácha 2022. Podporuje diakritiku.\n " ;
87
+ cout << " Použitím programu souhlasíte se samostatností Míkovic.\n " ;
57
88
cout << " Co chcete spamovat? -> " ;
58
89
59
- cin.ignore (numeric_limits<streamsize>::max (), ' \n ' ); // jinak nebude kvůli cin-u fungovat getline
90
+ cin.ignore (numeric_limits<streamsize>::max (), ' \n ' ); // jinak nebude kvùli cin-u fungovat getline
60
91
getline (wcin, wts);
61
92
62
- SetConsoleTextAttribute (hConsole, BGREEN);
63
-
64
- cout << " \n Hotovo. Držte F12 pro spam.\n " ;
93
+ SetConsoleTextAttribute (hConsole, B_GREEN);
94
+ cout << " \n Hotovo. Držte F12 pro spam.\n " ;
65
95
66
96
while (true ) {
67
97
0 commit comments