Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
0 / 0 / 0
Регистрация: 25.03.2025
Сообщений: 23

Отвалились стандартные функции вывода std::cout,std::cerr

25.03.2025, 23:23. Показов 25098. Ответов 49
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую,подскажите...плиз
может у кого была такая проблема?...Я уже всю голову сломал
после перерыва решил вернуться снова к программированию на C++, скачал последнюю версию Mingw-64 Win 11
и вдруг к своему полному удивлению обнаружил...что не могу вывести даже строку на экран)))думаю все приехали...отдохнул.
Выяснил,что printf() работает....а std::cout,std::cerr ноль эмоций и компилятор будто не видит стандартную библиотеку
Решил что сборка кривая...ОК...поставил другую..ту,что в прошлый раз работала 100%...результат тот же((

ни ошибок компиляции вообще ничего...просто выводится пустая строка...

заранее благодарю

PS:

у меня даже код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstdio>
 
int main() {
    // Проверяем, открыт ли stdout
    if (stdout == nullptr) {
        std::cerr << "stdout is null!" << std::endl;
        return 1;
    }
 
    // Переподключаем stdout, если он был закрыт
    if (std::freopen("CON", "w", stdout) == nullptr) {
        std::cerr << "Failed to reopen stdout" << std::endl;
        return 1;
    }
 
    std::cout << "Hello, stdout is working!" << std::endl;
    return 0;
}
вообще ничего не выводит((

дополнительные флаги -Wall -Werror тоже ничего не дали
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.03.2025, 23:23
Ответы с готовыми решениями:

main: пред-объявление и пост-объявление функций ;;; std::cout << ""; или using std::cout . cout << "";
Здравствуйте. Есть ли разница между объявлением функций до main и после? Влияет ли это на оптимизацию. Если да то что лучше? Пример: ...

Что и в каких случаях лучше использовать: cerr, clog, cout ?
Доброго времени суток! Подскажите пожалуйста, когда лучше использовать cerr, clog, cout? При буферизованном вводе/выводе данные сначала...

Не воспринимает ни std::cout, ни std::cin. Вобщем ничего из std. Также не понимает iostream
Здравствуйте! Я хотел начать изучать язык C++. Набрал литературы. Установил Microsoft Visual C++ 2005 Express Edition. Образ диска...

49
0 / 0 / 0
Регистрация: 25.03.2025
Сообщений: 23
26.03.2025, 11:30  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Max Dark Посмотреть сообщение
А MSYS и есть MinGW, только с пакетным менеджером в придачу.
поидее переключился

Code
1
C:\msys64\ucrt64\bin;
правда комп после этого како-то странный глюк схватил...завис в проводнике
но потом очухался...а результат всё такой же
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
26.03.2025, 11:32
Цитата Сообщение от Max Dark Посмотреть сообщение
А MSYS и есть MinGW, только с пакетным менеджером в придачу.
Если дело действительно в поломе связи со стандартным выводом, то другая обвязка над компилятором ничем не поможет.
1
0 / 0 / 0
Регистрация: 25.03.2025
Сообщений: 23
26.03.2025, 11:33  [ТС]
Цитата Сообщение от SmallEvil Посмотреть сообщение
test.exe >> output.txt
на выходе пустой текстовик
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
26.03.2025, 11:46
Форточки побились ))
Да уж.

Тогда либо сносить винду, либо установить MSVC, либо ждать обновления компилятора, если это из-за очередных плясок мелкомягких.

И на коня, попробуй одну из маг. фигней, в исходнике С++
C++
1
system("chcp 65001");
и в другом случае
C++
1
setlocale(LC_ALL, "");
Такого еще не видел)
0
0 / 0 / 0
Регистрация: 25.03.2025
Сообщений: 23
26.03.2025, 12:07  [ТС]
Цитата Сообщение от SmallEvil Посмотреть сообщение
C++Скопировано
1
system("chcp 65001");
и в другом случае
C++Скопировано
1
setlocale(LC_ALL, "");
смена кодировки символов не помогла))

Code
1
2
3
4
5
6
7
G:\development\user\tests\builders\AlexProject>g++ ./src/main.cpp -o test.exe
 
G:\development\user\tests\builders\AlexProject>test.exe
Active code page: 65001
 
G:\development\user\tests\builders\AlexProject>pause
Press any key to continue . . .
Цитата Сообщение от SmallEvil Посмотреть сообщение
либо установить MSVC
где-то он у меня тоже был...ок вечером попробую через cmake скомпилировать с ним
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2551 / 2065 / 971
Регистрация: 09.10.2013
Сообщений: 4,904
Записей в блоге: 4
26.03.2025, 12:14
AlexZwerb, в MSYS Bash так же есть проблема с выводом?
0
0 / 0 / 0
Регистрация: 25.03.2025
Сообщений: 23
26.03.2025, 12:24  [ТС]
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
    .file   "compile_main.cpp"
    .text
    .def    __main; .scl    2;  .type   32; .endef
    .section .rdata,"dr"
.LC0:
    .ascii "What the fuck?\12\0"
    .text
    .globl  main
    .def    main;   .scl    2;  .type   32; .endef
    .seh_proc   main
main:
.LFB2220:
    pushq   %rbp
    .seh_pushreg    %rbp
    movq    %rsp, %rbp
    .seh_setframe   %rbp, 0
    subq    $32, %rsp
    .seh_stackalloc 32
    .seh_endprologue
    call    __main
    leaq    .LC0(%rip), %rax
    movq    %rax, %rdx
    movq    .refptr._ZSt4cout(%rip), %rax
    movq    %rax, %rcx
    call    _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
    movl    $0, %eax
    addq    $32, %rsp
    popq    %rbp
    ret
    .seh_endproc
    .section .rdata,"dr"
_ZNSt8__detail30__integer_to_chars_is_unsignedIjEE:
    .byte   1
_ZNSt8__detail30__integer_to_chars_is_unsignedImEE:
    .byte   1
_ZNSt8__detail30__integer_to_chars_is_unsignedIyEE:
    .byte   1
    .ident  "GCC: (Rev6, Built by MSYS2 project) 13.2.0"
    .def    _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc;    .scl    2;  .type   32; .endef
    .section    .rdata$.refptr._ZSt4cout, "dr"
    .globl  .refptr._ZSt4cout
    .linkonce   discard
.refptr._ZSt4cout:
    .quad   _ZSt4cout
вот этот ничем не поможет?...Я просто вывел все стадии компиляции а Ассамблер читать не умею
0
10 / 9 / 2
Регистрация: 22.12.2024
Сообщений: 41
26.03.2025, 12:30
под gdb попробуй запусти и посмотри что он там пишет. Скомпилировать с дебаг символами нужно.
0
0 / 0 / 0
Регистрация: 25.03.2025
Сообщений: 23
26.03.2025, 12:33  [ТС]
Цитата Сообщение от Max Dark Посмотреть сообщение
MSYS Bash так же есть проблема с выводом?
честно,им не умею пользоваться....msys2_shell.cmd это он?
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2551 / 2065 / 971
Регистрация: 09.10.2013
Сообщений: 4,904
Записей в блоге: 4
26.03.2025, 12:38
Цитата Сообщение от AlexZwerb Посмотреть сообщение
вот этот ничем не поможет?
К сожалению, нет.
Здесь только вызов operator<< для std::cout

Единственное - версия компилятора.
У Вас показывает 13.2.0, хотя в MSYS сейчас 14.2.0
Bash
1
2
3
4
5
$ g++ --version
g++.exe (Rev3, Built by MSYS2 project) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2551 / 2065 / 971
Регистрация: 09.10.2013
Сообщений: 4,904
Записей в блоге: 4
26.03.2025, 12:42
Цитата Сообщение от AlexZwerb Посмотреть сообщение
честно,им не умею пользоваться....msys2_shell.cmd это он?
MSYS в "Пуск" ярлыки добавляет.
Вам нужен MSYS2 UCRT64
Изображения
 
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2551 / 2065 / 971
Регистрация: 09.10.2013
Сообщений: 4,904
Записей в блоге: 4
26.03.2025, 12:47
для перехода в папку с проектом:
Bash
1
cd /g/development/user/tests/builders/AlexProject
либо как в CMD
Bash
1
cd g:/development/user/tests/builders/AlexProject
но так автодополнение по <TAB> не работает...
0
0 / 0 / 0
Регистрация: 25.03.2025
Сообщений: 23
26.03.2025, 12:57  [ТС]
Цитата Сообщение от Max Dark Посмотреть сообщение
MSYS в "Пуск" ярлыки добавляет.
Вам нужен MSYS2 UCRT64

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vasil@ZWERb UCRT64 ~
$ pwd
/home/vasil
 
vasil@ZWERb UCRT64 ~
$ cd g:
 
vasil@ZWERb UCRT64 /g
$ cd g://development/user/tests/builders/AlexProject
 
vasil@ZWERb UCRT64 /g/development/user/tests/builders/AlexProject
$ test.exe
 
vasil@ZWERb UCRT64 /g/development/user/tests/builders/AlexProject
$
неа..всё тоже самое что и в cmd((

Добавлено через 1 минуту
Цитата Сообщение от basiliscos Посмотреть сообщение
под gdb попробуй запусти и посмотри что он там пишет
а это как сделать...подскажите плиз?
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2551 / 2065 / 971
Регистрация: 09.10.2013
Сообщений: 4,904
Записей в блоге: 4
26.03.2025, 13:10
Цитата Сообщение от AlexZwerb Посмотреть сообщение
Bash
1
2
vasil@ZWERb UCRT64 /g/development/user/tests/builders/AlexProject
$ test.exe
У Вас похоже в PATH какой то test.exe записан.
Для вызова приложения из текущей директории нужно явно указывать
Bash
1
./test
Добавлено через 1 минуту
Bash
1
2
$ whereis test.exe
test.exe: /usr/bin/test.exe
Добавлено через 44 секунды
И он как раз в консоль ничего не пишет)
1
0 / 0 / 0
Регистрация: 25.03.2025
Сообщений: 23
26.03.2025, 15:26  [ТС]
Цитата Сообщение от Max Dark Посмотреть сообщение
У Вас похоже в PATH какой то test.exe записан
нет это просто Я перешел в папку с проектом и там запустил скомпилированный экзешник...в path его нету

что касается последних новостей))сперва Я попытался обновить MSYS после чего у меня компилятор вообще потерялся))Я залез в директорию msys64 и обнаружил что почему-то все папки с компиляторами вообще пустые))после чего решил взять перерыв...пока башка не лопнула
Затем попробовал вариант c Visual Studio...там все отлично работает и выводится
значит проблема именно с Mingw

проблему с MSYS Я вроде понял...ща через pacman вкачаю mingw и попробую ещё раз

Добавлено через 9 минут
Assembler
1
.ident  "GCC: (Rev2, Built by MSYS2 project) 14.2.0"
Я обновил MSYS но результат тотже
видимо придется пока через VS компилировать(он столько мусора оставляет после себя)...пока не знаю как это ещё лечить
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2551 / 2065 / 971
Регистрация: 09.10.2013
Сообщений: 4,904
Записей в блоге: 4
26.03.2025, 15:31
Цитата Сообщение от AlexZwerb Посмотреть сообщение
нет это просто Я перешел в папку с проектом и там запустил скомпилированный экзешник...
Еще раз.
Bash по умолчанию не запускает экзешники из текущей директории и ищет их в PATH
К стати про CMD
После ошибки компиляции у Вас просто экзешник не создался и CMD запустил первый попавшийся из PATH
Откуда он взялся?
А с GCC часто в комплекте идет набор утилит UNIX.
test - одна из них.

Цитата Сообщение от AlexZwerb Посмотреть сообщение
Я попытался обновить MSYS после чего у меня компилятор вообще потерялся)
По умолчанию компиляторы не установлены
.
Для установки пакетов используется pacman:
Bash
1
2
# в MSYS2 UCRT выполнить
pacman -Suy mingw-w64-ucrt-x86_64-gcc
Добавлено через 2 минуты
Цитата Сообщение от AlexZwerb Посмотреть сообщение
попробую ещё раз
имя экзешника только не test используйте)
Для проверки гипотез)
0
0 / 0 / 0
Регистрация: 25.03.2025
Сообщений: 23
26.03.2025, 15:41  [ТС]
Цитата Сообщение от Max Dark Посмотреть сообщение
имя экзешника только не test используйте)
Для проверки гипотез)
ок..да Я помню где-то Я уже с эти сталкивался по поводу названия с QT вроде была тоже запара))спс,учту
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2551 / 2065 / 971
Регистрация: 09.10.2013
Сообщений: 4,904
Записей в блоге: 4
26.03.2025, 15:47
Лучший ответ Сообщение было отмечено AlexZwerb как решение

Решение

Цитата Сообщение от AlexZwerb Посмотреть сообщение
была тоже запара
Разница в способе запуска на скриншоте:
0
0 / 0 / 0
Регистрация: 25.03.2025
Сообщений: 23
26.03.2025, 16:10  [ТС]
Цитата Сообщение от Max Dark Посмотреть сообщение
Разница в способе запуска на скриншоте:

О СПАСИБО...получилось

значит в чем причина получается?

Добавлено через 49 секунд
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
vasil@ZWERb UCRT64 ~
$ cd /g/tmp
 
vasil@ZWERb UCRT64 /g/tmp
$ g++ main.cpp -o myProg
 
vasil@ZWERb UCRT64 /g/tmp
$ ls -l
total 129
-rw-r--r-- 1 vasil Отсутствует     79 Mar 26 15:58 main.cpp
-rwxr-xr-x 1 vasil Отсутствует 130374 Mar 26 15:59 myProg.exe
 
vasil@ZWERb UCRT64 /g/tmp
$ ./myProg.exe
CMON!CMON!
 
vasil@ZWERb UCRT64 /g/tmp
$
Добавлено через 1 минуту
а пытаюсь запустить myProg.exe через CMD и тишина сразу

Добавлено через 6 минут
выходит это консоль голову морочит
0
0 / 0 / 0
Регистрация: 25.03.2025
Сообщений: 23
26.03.2025, 16:33  [ТС]


попытался уже консоль обновить...и по разному запустить..всё равно не хочет...сволочь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.03.2025, 16:33

Перенаправление std::cerr
Всем доброго времени суток! Возможно вопрос очень простой, но вразумительного ответа найти не смог. Необходимо перенаправить вывод из...

cout vs. std::cout
всем доброго времени суток. начал самостоятельно изучать c++. скачал в сети много разныx умныx книжек.. обнаружил в примераx кода...

В чем разница std::cout и просто cout?
Ребят ,подскажите на простом языке для чайников . В чем разница std::cout и просто cout?

Std::vector<std::pair<std::vector<int>::iterator, std::vector<int>::iterator>
Вопрос по вектору. Допустим есть вектор, std::vector&lt;int&gt; vec; на каком - то этапе заполнения я ставлю закладку итератора, ...

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru