#c #cin #cout
#c #cin #cout
Вопрос:
Я хочу создать программу на C без #include, и я не хочу использовать printf и scanf в своей программе.
Я могу использовать printf и scanf в своей программе без #include:
extern "C"
{
int printf(const char *format, ...);
extern int scanf(const char *format, ...);
}
Но я не могу использовать cout и cin в своей программе без #include.
Комментарии:
1. Могу я спросить, почему вы хотите это сделать?
2.
std::cin
иstd::cout
это не функции, это объекты с шаблонными типами в иерархии наследования. Это не простые функции, для которых вы можете создать прототип, вам абсолютно нужны заголовки.3. Итак, я думаю, это наконец произошло… Мир сошел с ума.
4. @nada В этом примере hello world нет ни одного
#include
, и он используетstd::cout
: D godbolt.org/z/cPcW835. @AyxanHaqverdili >22 тысячи строк нестандартного кода. Измените компилятор, и он вообще не будет работать. На самом деле ваш комментарий и ссылка стали бы хорошим ответом на этот вопрос.
Ответ №1:
Как использовать cout и cin без #include в C ?
Стандартного способа сделать это нет. std::cout
и std::cin
являются переменными классов, определяемых реализацией. Единственный способ получить определения этих классов — включить их из стандартного заголовка.
Комментарии:
1. Немного гипертехнический: это не определяется реализацией, а зависит от конкретной реализации. В стандарте определение реализации означает, что реализация должна документировать то, что она делает.
Ответ №2:
Еще один немного глупый ответ на этот немного глупый (при всем уважении) вопрос — открыть #include в редакторе, затем вырезать и вставить этот код в свой собственный файл C . Затем повторите этот процесс для всех операторов #include, которые были в исходном коде заголовка, и продолжайте повторять, пока у вас не будет всего кода в исходном файле. Результат: (очень длинный) рабочий фрагмент кода без оператора #include . (У меня есть чувство юмора).