Написал функцию вызова консоли Код (Text): bool CreateConsole() { FreeConsole(); if (AllocConsole()) { SetConsoleOutputCP(1251); // Чтобы русские буквы отображать int hCrt = _open_osfhandle((long) GetStdHandle(STD_OUTPUT_HANDLE), 0); FILE *f=::_fdopen(hCrt, "w"); if(setvbuf(f, NULL, _IONBF, 0)==0) { *stdout = *f; *stderr = *f; return false; } } return true; } вызываю Код (Text): void Вывод(char*s) { CreateConsole(); printf("Привет мир!"); } В результате кракозябры. Что не так?
поищи по форуму, кнопка поиска третья сверху. Правильно пишется "в консолИ", но ищи и "в консолЕ", ибо ты не первый, кто пишет "в консолЕ".
pashe4ka13 Лучше не 1251, а сразу к юникоду привыкать: Код (Text): AllocConsole(); UINT cpOld = GetConsoleOutputCP(); SetConsoleOutputCP(CP_WINUNICODE); FILE *hfOut = _tfdopen(_open_osfhandle((long)GetStdHandle(STD_OUTPUT_HANDLE), 2 /*_O_TEXT*/), _T("w")), *hfIn = _tfdopen(_open_osfhandle((long)GetStdHandle(STD_INPUT_HANDLE), 2 /*_O_TEXT*/), _T("r")); *stdout = *stderr = *hfOut; *stdin = *hfIn; _setmode(_fileno(stdout), _O_U16TEXT); _tprintf(_T("Привет, мир!")); getch(); fclose(hfIn); fclose(hfOut); SetConsoleOutputCP(cpOld); FreeConsole();