Linux iostream нет такого файла или каталога
Объявляет объекты, управляющие чтением из стандартных потоков и записью в них. Это, как правило, единственный заголовок, необходимый для ввода и вывода из программы на C++.
Синтаксис
Remarks
Объекты можно разделить на две группы:
cin , cout , cerr и clog являются ориентированными на байты, выполняя обычную передачу данных по времени.
wcin , wcout , wcerr и wclog являются широкими, переводятся в расширенные символы, которые программа обрабатывает внутренним образом.
После выполнения определенных операций с потоком, например со стандартным входом, нельзя выполнять операции с разными ориентациями в одном потоке. Таким образом, программа не может одновременно взаимодействовать с cin и, например wcin .
Все объекты, объявленные в этом заголовке, совместно используют свойство довольно необычная — вы можете предположить, что они созданы до любых статических объектов, которые вы определяете, в записи преобразования, которая включает <iostream> . Точно так же можно предположить, что эти объекты не уничтожаются до деструкторов для любых таких статических объектов, которые вы определяете. (Однако выходные потоки сбрасываются во время завершения программы.) Таким образом, можно безопасно считывать или записывать в стандартные потоки перед запуском программы и после завершения программы.
Однако эта гарантия не является универсальной. Статический конструктор может вызвать функцию в другой записи преобразования. Вызываемая функция не может предположить, что объекты, объявленные в этом заголовке, были созданы с учетом неопределенного порядка, в котором единицы преобразования участвуют в статической конструкции. Чтобы использовать эти объекты в таком контексте, сначала необходимо создать объект класса ios_base::Init .
Глобальные объекты потоков
Имя | Описание |
---|---|
cerr | Указывает глобальный поток cerr . |
cin | Указывает глобальный поток cin . |
clog | Указывает глобальный поток clog . |
cout | Указывает глобальный поток cout . |
wcerr | Указывает глобальный поток wcerr . |
wcin | Указывает глобальный поток wcin . |
wclog | Указывает глобальный поток wclog . |
wcout | Указывает глобальный поток wcout . |
Объект cerr управляет выводом в буфер потока, связанный с объектом stderr , объявленный в <cstdio> .
Возвращаемое значение
Remarks
Этот объект управляет вставкой без буферизации в стандартный вывод ошибок в виде байтового потока. После создания объекта выражение cerr.flags & unitbuf имеет ненулевое значение и cerr.tie() == &cout . Дополнительные сведения см. в статьях cerr.flags и unitbuf .
Пример
Указывает глобальный поток cin .
Возвращаемое значение
Remarks
Объект контролирует получение данных из стандартного ввода, как потока байтов. После создания объекта вызов cin.tie возвращает &cout .
Пример
В этом примере cin устанавливает бит сбоя в потоке, если он поступает между нечисловыми символами. Программа очищает бит сбоя и удаляет из потока недопустимый символ, чтобы продолжить.
Указывает глобальный поток clog .
Возвращаемое значение
Remarks
Этот объект управляет вставкой с буферизацей в стандартный вывод ошибок в виде байтового потока.
Пример
См. cerr с примером использования clog .
Указывает глобальный поток cout .
Возвращаемое значение
Remarks
Этот объект управляет вставкой в стандартный вывод в виде байтового потока.
Пример
См. cerr с примером использования cout .
wcerr
Указывает глобальный поток wcerr .
Возвращаемое значение
Remarks
Этот объект управляет вставкой без буферизации в стандартный вывод ошибок в виде двухбайтового потока. После создания объекта выражение wcerr.flags & unitbuf не равно нулю. Дополнительные сведения см. в статьях wcerr.flags и unitbuf .
Пример
См. cerr с примером использования wcerr .
Указывает глобальный поток wcin .
Возвращаемое значение
Remarks
Этот объект управляет извлечением из стандартного ввода в виде двухбайтового потока. После создания объекта вызов wcin.tie возвращает &wcout .
Пример
См. cerr с примером использования wcin .
wclog
Указывает глобальный поток wclog .
Возвращаемое значение
Remarks
Этот объект управляет вставкой с буферизацей в стандартный вывод ошибок в виде двухбайтового потока.
Пример
См. cerr с примером использования wclog .
wcout
Указывает глобальный поток wcout .
Возвращаемое значение
Remarks
Этот объект управляет вставкой в стандартный вывод в качестве широкого потока.
Пример
См. cerr с примером использования wcout .
Экземпляры CString в операторе wcout необходимо привести к const wchar_t* , как показано в следующем примере.
Почему, когда я хочу скомпилировать следующую многопоточную программу сортировки слиянием C, я получаю эту ошибку:
2 ответа
При компиляции моей программы в 32 битном режиме с помощью gcc -m32 program.c -o program Я получаю следующую ошибку фатальная ошибка: sys/socket.h: нет такого файла или каталога , но с gcc program.c -o program это прекрасно работает Есть ли какой-нибудь обходной путь для этого?
Я хочу использовать libxml2 в своем проекте eclipse. Я могу использовать эту библиотеку в командной строке с помощью выход g++ main.cpp -I/usr/include/libxml2-lxml2-o Но я не могу использовать на eclipse. Я добавляю C++ Build - >Setting - >GCC C Compiler - >Includes -I/usr/include/libxml2 и еще.
Ни <iostream> , ни <iostream.h> не являются стандартными заголовочными файлами C. Ваш код должен быть C++, где <iostream> -допустимый заголовок. Используйте g++ (и расширение файла .cpp ) для кода C++.
Похоже, вы опубликовали новый вопрос после того, как поняли, что имеете дело с более простой проблемой, связанной с size_t . Я рад, что вы это сделали.
При использовании printf("\n"); в приведенном выше коде вместо cout<<endl;
При использовании putchar('\n'); в приведенном выше коде вместо cout<<endl;
Скомпилирован с версией Cygwin gcc (GCC) 4.8.3 . результаты усреднялись по 10 выборкам. (Это заняло у меня 15 минут)
Похожие вопросы:
Функция mdelay() используется в моей программе, но при компиляции GCC выдала мне ошибку: фатальная ошибка: linux/delay.h: нет такого файла или каталога Я пытался решить эту проблему, но ничего не.
Я просто обновляю свой компьютер iMac до Mac Os x 10.9, но когда я открываю terminal и использую gcc для компиляции моего файла c или c++, он не работает. Когда я пишу такой простой код, как этот.
Я пытался написать базовый модульный тест. Но при компиляции я получаю ошибку: фатальная ошибка: cmocka.h: компиляция такого файла или каталога не завершена. Кто-нибудь может мне помочь?
При компиляции моей программы в 32 битном режиме с помощью gcc -m32 program.c -o program Я получаю следующую ошибку фатальная ошибка: sys/socket.h: нет такого файла или каталога , но с gcc program.c.
Я хочу использовать libxml2 в своем проекте eclipse. Я могу использовать эту библиотеку в командной строке с помощью выход g++ main.cpp -I/usr/include/libxml2-lxml2-o Но я не могу использовать на.
В настоящее время я пытаюсь скомпилировать GnuTLS (для wget) для Android с помощью набора инструментов кросс-компиляции Android. Я уже исправил много ошибок отсутствующей библиотеки, но теперь я.
Я пытаюсь скомпилировать программу C и должен использовать эти флаги. Я надеялся, что вы скажете мне, почему я получаю эти ошибки. Команда: gcc -ansi –Wall –pedantic stack.c Выход: gcc: - Wall: нет.
Когда я компилирую это с g ++, это работает отлично. Когда я пытаюсь скомпилировать с Clang ++, я получаю следующую ошибку:
Работая с параметром -v , я вижу следующее:
Рассматривая эти папки по отдельности, я обнаружил, что в /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++ (или, более кратко, в /usr/include/c++ ) у меня есть следующие каталоги:
В каждом из каталогов 5 , 7 и v1 существует файл с именем iostream
Также в /usr/include/x86_64-linux-gnu существует каталог c++ , который выглядит точно так же (с каталогами 5 , 7 , 5.5.0 и 7.3.0 ,
Также в /usr/include существует каталог c++ , который выглядит точно так же, как два выше
Обновление (1)
Когда я пытаюсь построить с libc++ , я получаю следующую ошибку:
Когда я пытаюсь построить с включенным вручную путем включения, я получаю следующую ошибку:
Когда я пробую оба, я получаю следующую (невероятно большую) ошибку:
Напоминаю, что я буквально пытаюсь скомпилировать Hello, World .
Я также попытался удалить и переустановить Clang с помощью следующей команды:
Если возможно, я бы хотел, чтобы Clang работал, а не возвращался к использованию G ++, потому что моя IDE, похоже, автоматически обнаруживает Clang и использует его для проверки синтаксиса. Это означает, что каждая написанная мною программа C ++ имеет одну фатальную ошибку в первой строке («iostream not found»), а остальная часть файла не проверяется, потому что первая - фатальная ошибка.
Обновление (2)
Я попытался установить еще несколько пакетов из репозитория Ubuntu apt, но безуспешно:
Я также попытался sudo apt-get install lc++1 найти только совершенно не связанный пакет.
Обновление (3)
Я потратил еще несколько часов, пытаясь решить эту проблему, устанавливая несколько пакетов как из apt, так и из исходных текстов, пробуя разные версии различных инструментов, вручную копируя в библиотеки из других источников, и даже переходил на Clang IRC и общался с несколькими очень хорошо осведомленными разработчиками напрямую. ,
Никто не смог понять, что случилось с моим ноутбуком, и ничто из того, что я делал, не заставляло его работать.
К сожалению, через две недели у меня все еще не будет этого ноутбука, поэтому мне, вероятно, придется закрыть эту проблему, поскольку она «не может воспроизвести» - потому что после того, как ноутбук уйдет, у меня не будет возможности воспроизвести испорченную среду разработки.
3 ответа
Я также был обеспокоен этой проблемой в течение длительного времени. Вы должны попытаться удалить папку (cd / usr / lib / gcc / aarch64-linux-gnu / 8). Причина, по которой clang ++ не может работать, состоит в том, что эта папка не содержит libstdc ++. A.
Проверьте, что все папки в / usr / lib / gcc / aarch64-linux-gnu / clang ++ выберут последнюю, убедитесь, что в последнем есть libstdc ++. a
Читайте также: