Помогите пожалуйста Могу кинуть код у меня летят цвета + нет заголовка консольки, хотя в кмд от vs все норм воркает.
renameduser_3379087, #include <iostream> #include <random> #include <vector> #include <string> #include <chrono> #include <thread> struct AddressProfit { std::string address; double profit; }; std::vector<AddressProfit> addressProfits; int generatedAddresses = 0; int randomInt(int min, int max) { static std::random_device rd; static std::mt19937 gen(rd()); std::uniform_int_distribution<> dis(min, max); return dis(gen); } char randomChar() { const std::string charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; return charset[randomInt(0, charset.size() - 1)]; } std::string generateRandomString(int length) { std::string result; for (int i = 0; i < length; ++i) { result += randomChar(); } return result; } std::string generateMnemonicPhrase() { const std::vector<std::string> wordList = { "abandon", "ability", "able", "about", "above", "absent", "absorb", "abstract", "absurd", "abuse", "access", "accident", "account", "accuse", "achieve", "acid", "acoustic", "acquire", "across", "act", "action", "actor", "actress", "actual", "adapt", "add", "addict", "address", "adjust", "admit", "adult", "advance", "advice", "aerobic", "affair", "afford", "afraid", "again", "age", "agent", "agree", "ahead", "aim", "air", "airport", "aisle", "alarm", "album", "alcohol", "alert", "alien", "all", "alley", "allow", "almost", "alone", "alpha", "already", "also", "alter", "always", "amateur", "amazing", "among", "amount", "amused", "analyst", "anchor", "ancient", "anger", "angle", "angry", "animal", "ankle", "announce", "annual", "another", "answer", "antenna", "antique", "anxiety", "any", "apart", "apology", "appear", "apple", "approve", "april", "arch", "arctic", "area", "arena", "argue", "arm", "armed", "armor", "army", "around", "arrange", "arrest", "arrive", "arrow", "art", "artefact", "artist", "artwork", "Dog", "Badge", "Height", "Guitar", "Bottle", "Dress", "Beehive", "Ghost", "Dragon", "Hobby", "Globe", "Bridge", "Dolphin", "Bicycle", "Highway", "Garden", "Bush", "Diamond", "Bag", "Harbor", "Guitarist", "Bulldog", "Handbag", "Gate", "Disk", "Basket", "Hedgehog", "Goldfish", "Drum", "Bulb", "Horse", "Glacier", "Badge", "Hanger", "Giraffe", "Daisy", "Bunker", "Hammer", "Gym", "Band", "Hand", "Gift", "Diver", "Brick", "Hill", "Goose", "Dinner", "Bear", "Helmet", "Grass", "Bridge", "Handle", "Gum", "Deer", "Bunny", "Hospital", "Goat", "Dragonfly", "Boat", "Harmony", "Glove", "Door", "Bread", "House", "Gallery", "Bug", "Drill", "Bee", "Hawk", "Guitar", "Dice", "Bush", "Honey", "Grain", "Dollar", "Baggage", "Harbor", "Grapes", "Bed", "Hamster", "Gymnastics", "Balloon", "Hook", "Guitar", "Dust", "Brush", "Hanger", "Guitar", "Diver", "Bird", "Horse", "Goose", "Boat", "Drift", "Bread", "Helmet", "Gate", "Dove", "Bee", "Hill" // ... далее следуют еще слова из списка }; std::string phrase; for (int i = 0; i < 15 + randomInt(0, 1); ++i) { phrase += wordList[randomInt(0, wordList.size() - 1)]; if (i < 14) phrase += " "; } return phrase; } std::string generateBitcoinAddress() { std::string address = "bc1"; for (int i = 0; i < 26; ++i) { address += randomChar(); } return address; } int main(int argc, char* argv[]) { std::cout << "\033[1;31m"; std::cout << " . .\n"; std::cout << " .n . . n.\n"; std::cout << " . .dP dP 9b 9b. .\n"; std::cout << " 4 qXb . dX Xb . dXp t\n"; std::cout << "dX. 9Xb .dXb __ __ dXb. dXP .Xb\n"; std::cout << "9XXb._ _.dXXXXb dXXXXbo. .odXXXXb dXXXXb._ _.dXXP\n"; std::cout << " 9XXXXXXXXXXXXXXXXXXXVXXXXXXXXOo. .oOXXXXXXXXVXXXXXXXXXXXXXXXXXXXP\n"; std::cout << " `9XXXXXXXXXXXXXXXXXXXXX'~ ~`OOO8b d8OOO'~ ~`XXXXXXXXXXXXXXXXXXXXXP'\n"; std::cout << " `9XXXXXXXXXXXP' `9XX' DIE `98v8P' HUMAN `XXP' `9XXXXXXXXXXXP'\n"; std::cout << " ~~~~~~~ 9X. .db|db. .XP ~~~~~~~\n"; std::cout << " )b. .dbo.dP'`v'`9b.odb. .dX(\n"; std::cout << " ,dXXXXXXXXXXXb dXXXXXXXXXXXb.\n"; std::cout << " dXXXXXXXXXXXP' . `9XXXXXXXXXXXb\n"; std::cout << " dXXXXXXXXXXXXb d|b dXXXXXXXXXXXXb\n"; std::cout << " 9XXb' `XXXXXb.dX|Xb.dXXXXX' `dXXP\n"; std::cout << " `' 9XXXXXX( )XXXXXXP `'\n"; std::cout << " XXXX X.`v'.X XXXX\n"; std::cout << " XP^X'`b d'`X^XX\n"; std::cout << " X. 9 ` ' P )X\n"; std::cout << " `b ` ' d'\n"; std::cout << " ` '\n"; std::cout << "\033[0m"; std::cout << "\033[1;2m"; std::cout << "\033[32mTo generate Bitcoin addresses, please input 'bitcoin' and press Enter: \033[0m"; std::string input; std::getline(std::cin, input); std::cout << "\033[2J\033[1;1H"; while (true) { generatedAddresses++; std::string address = generateBitcoinAddress(); double addressProfit = 0.000; addressProfits.push_back({ address, addressProfit }); double totalProfit = 0.0; for (const auto& profit : addressProfits) { totalProfit += profit.profit; } std::cout << "\033]0;Generated Addresses: " << generatedAddresses << " | Total Profit: " << totalProfit << "\007"; std::cout << "\033[32mAddress: \033[0m" << address << " | \033[32mProfit: \033[0m" << addressProfit << " | "; std::cout << "\033[32mMnemonic Phrase: \033[0m" << generateMnemonicPhrase() << std::endl; std::this_thread::sleep_for(std::chrono::milliseconds(33)); } return 0; } C #include <iostream> #include <random> #include <vector> #include <string> #include <chrono> #include <thread> struct AddressProfit { std::string address; double profit; }; std::vector<AddressProfit> addressProfits; int generatedAddresses = 0; int randomInt(int min, int max) { static std::random_device rd; static std::mt19937 gen(rd()); std::uniform_int_distribution<> dis(min, max); return dis(gen); } char randomChar() { const std::string charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; return charset[randomInt(0, charset.size() - 1)]; } std::string generateRandomString(int length) { std::string result; for (int i = 0; i < length; ++i) { result += randomChar(); } return result; } std::string generateMnemonicPhrase() { const std::vector<std::string> wordList = { "abandon", "ability", "able", "about", "above", "absent", "absorb", "abstract", "absurd", "abuse", "access", "accident", "account", "accuse", "achieve", "acid", "acoustic", "acquire", "across", "act", "action", "actor", "actress", "actual", "adapt", "add", "addict", "address", "adjust", "admit", "adult", "advance", "advice", "aerobic", "affair", "afford", "afraid", "again", "age", "agent", "agree", "ahead", "aim", "air", "airport", "aisle", "alarm", "album", "alcohol", "alert", "alien", "all", "alley", "allow", "almost", "alone", "alpha", "already", "also", "alter", "always", "amateur", "amazing", "among", "amount", "amused", "analyst", "anchor", "ancient", "anger", "angle", "angry", "animal", "ankle", "announce", "annual", "another", "answer", "antenna", "antique", "anxiety", "any", "apart", "apology", "appear", "apple", "approve", "april", "arch", "arctic", "area", "arena", "argue", "arm", "armed", "armor", "army", "around", "arrange", "arrest", "arrive", "arrow", "art", "artefact", "artist", "artwork", "Dog", "Badge", "Height", "Guitar", "Bottle", "Dress", "Beehive", "Ghost", "Dragon", "Hobby", "Globe", "Bridge", "Dolphin", "Bicycle", "Highway", "Garden", "Bush", "Diamond", "Bag", "Harbor", "Guitarist", "Bulldog", "Handbag", "Gate", "Disk", "Basket", "Hedgehog", "Goldfish", "Drum", "Bulb", "Horse", "Glacier", "Badge", "Hanger", "Giraffe", "Daisy", "Bunker", "Hammer", "Gym", "Band", "Hand", "Gift", "Diver", "Brick", "Hill", "Goose", "Dinner", "Bear", "Helmet", "Grass", "Bridge", "Handle", "Gum", "Deer", "Bunny", "Hospital", "Goat", "Dragonfly", "Boat", "Harmony", "Glove", "Door", "Bread", "House", "Gallery", "Bug", "Drill", "Bee", "Hawk", "Guitar", "Dice", "Bush", "Honey", "Grain", "Dollar", "Baggage", "Harbor", "Grapes", "Bed", "Hamster", "Gymnastics", "Balloon", "Hook", "Guitar", "Dust", "Brush", "Hanger", "Guitar", "Diver", "Bird", "Horse", "Goose", "Boat", "Drift", "Bread", "Helmet", "Gate", "Dove", "Bee", "Hill" // ... далее следуют еще слова из списка }; std::string phrase; for (int i = 0; i < 15 + randomInt(0, 1); ++i) { phrase += wordList[randomInt(0, wordList.size() - 1)]; if (i < 14) phrase += " "; } return phrase; } std::string generateBitcoinAddress() { std::string address = "bc1"; for (int i = 0; i < 26; ++i) { address += randomChar(); } return address; } int main(int argc, char* argv[]) { std::cout << "\033[1;31m"; std::cout << " . .\n"; std::cout << " .n . . n.\n"; std::cout << " . .dP dP 9b 9b. .\n"; std::cout << " 4 qXb . dX Xb . dXp t\n"; std::cout << "dX. 9Xb .dXb __ __ dXb. dXP .Xb\n"; std::cout << "9XXb._ _.dXXXXb dXXXXbo. .odXXXXb dXXXXb._ _.dXXP\n"; std::cout << " 9XXXXXXXXXXXXXXXXXXXVXXXXXXXXOo. .oOXXXXXXXXVXXXXXXXXXXXXXXXXXXXP\n"; std::cout << " `9XXXXXXXXXXXXXXXXXXXXX'~ ~`OOO8b d8OOO'~ ~`XXXXXXXXXXXXXXXXXXXXXP'\n"; std::cout << " `9XXXXXXXXXXXP' `9XX' DIE `98v8P' HUMAN `XXP' `9XXXXXXXXXXXP'\n"; std::cout << " ~~~~~~~ 9X. .db|db. .XP ~~~~~~~\n"; std::cout << " )b. .dbo.dP'`v'`9b.odb. .dX(\n"; std::cout << " ,dXXXXXXXXXXXb dXXXXXXXXXXXb.\n"; std::cout << " dXXXXXXXXXXXP' . `9XXXXXXXXXXXb\n"; std::cout << " dXXXXXXXXXXXXb d|b dXXXXXXXXXXXXb\n"; std::cout << " 9XXb' `XXXXXb.dX|Xb.dXXXXX' `dXXP\n"; std::cout << " `' 9XXXXXX( )XXXXXXP `'\n"; std::cout << " XXXX X.`v'.X XXXX\n"; std::cout << " XP^X'`b d'`X^XX\n"; std::cout << " X. 9 ` ' P )X\n"; std::cout << " `b ` ' d'\n"; std::cout << " ` '\n"; std::cout << "\033[0m"; std::cout << "\033[1;2m"; std::cout << "\033[32mTo generate Bitcoin addresses, please input 'bitcoin' and press Enter: \033[0m"; std::string input; std::getline(std::cin, input); std::cout << "\033[2J\033[1;1H"; while (true) { generatedAddresses++; std::string address = generateBitcoinAddress(); double addressProfit = 0.000; addressProfits.push_back({ address, addressProfit }); double totalProfit = 0.0; for (const auto& profit : addressProfits) { totalProfit += profit.profit; } std::cout << "\033]0;Generated Addresses: " << generatedAddresses << " | Total Profit: " << totalProfit << "\007"; std::cout << "\033[32mAddress: \033[0m" << address << " | \033[32mProfit: \033[0m" << addressProfit << " | "; std::cout << "\033[32mMnemonic Phrase: \033[0m" << generateMnemonicPhrase() << std::endl; std::this_thread::sleep_for(std::chrono::milliseconds(33)); } return 0; }
Нужно сменить режим консоли. Добавь этот код в начало функции main и подключи Windows.h ... #include <Windows.h> ... int main(int argc, char* argv[]) { HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); if (hOut == INVALID_HANDLE_VALUE) { return GetLastError(); } DWORD dwMode = 0; if (!GetConsoleMode(hOut, &dwMode)) { return GetLastError(); } dwMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING; if (!SetConsoleMode(hOut, dwMode)) { return GetLastError(); } ... } C ... #include <Windows.h> ... int main(int argc, char* argv[]) { HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); if (hOut == INVALID_HANDLE_VALUE) { return GetLastError(); } DWORD dwMode = 0; if (!GetConsoleMode(hOut, &dwMode)) { return GetLastError(); } dwMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING; if (!SetConsoleMode(hOut, dwMode)) { return GetLastError(); } ... } источник кода https://learn.microsoft.com/ru-ru/windows/console/console-virtual-terminal-sequences#example-of-sgr-terminal-sequences Код будет работать на windows 10 сборки 10586 и выше (источник https://stackoverflow.com/a/44482740)