Как использовать cout и cin без #include в C ?

#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/cPcW83

5. @AyxanHaqverdili >22 тысячи строк нестандартного кода. Измените компилятор, и он вообще не будет работать. На самом деле ваш комментарий и ссылка стали бы хорошим ответом на этот вопрос.

Ответ №1:

Как использовать cout и cin без #include в C ?

Стандартного способа сделать это нет. std::cout и std::cin являются переменными классов, определяемых реализацией. Единственный способ получить определения этих классов — включить их из стандартного заголовка.

Комментарии:

1. Немного гипертехнический: это не определяется реализацией, а зависит от конкретной реализации. В стандарте определение реализации означает, что реализация должна документировать то, что она делает.

Ответ №2:

Еще один немного глупый ответ на этот немного глупый (при всем уважении) вопрос — открыть #include в редакторе, затем вырезать и вставить этот код в свой собственный файл C . Затем повторите этот процесс для всех операторов #include, которые были в исходном коде заголовка, и продолжайте повторять, пока у вас не будет всего кода в исходном файле. Результат: (очень длинный) рабочий фрагмент кода без оператора #include . (У меня есть чувство юмора).