Кто нибудь писал quine? - C (СИ)
Формулировка задачи:
писал свой quine но не вот эту классику
Это классический Куайн на Си, полностью соответствующий ANSI Си.
#include<stdio.h> char*i="\\#include<stdio.h> ",n='\n',q='"',*p= "%s%cchar*i=%c%c%s%c,n='%cn',q='%c',*p=%c%c%s%c,*m=%c%c%s%c%c;%s%c",*m= "int main(){return!printf(p,i+1,n,q,*i,i,q,*i,q,n,q,p,q,n,q,m,q,n,m,n);}" ;int main(){return!printf(p,i+1,n,q,*i,i,q,*i,q,n,q,p,q,n,q,m,q,n,m,n);}
Решение задачи: «Кто нибудь писал quine?»
textual
Листинг программы
#include <algorithm> #include <iostream> #include <iterator> #include <fstream> #include <string> int main() { std::copy(std::istream_iterator<std::string>(std::ifstream("main.cpp")) , std::istream_iterator<std::string>() , std::ostream_iterator<std::string>(std::cout, "\n")); }
Объяснение кода листинга программы
В этом коде программа считывает файл main.cpp
построчно и выводит каждую строку на стандартный вывод с символом новой строки после неё.
Код использует следующие стандартные библиотеки C++:
<algorithm>
- Эта библиотека содержит алгоритмы для работы с контейнерами.<iostream>
- Эта библиотека содержит функции для ввода и вывода данных.<iterator>
- Эта библиотека содержит итераторы для работы с контейнерами.<fstream>
- Эта библиотека содержит классы для работы с файлами.<string>
- Эта библиотека содержит классы и функции для работы со строками. Переменные, используемые в коде:std::string main_cpp_content
- переменная, которая содержит содержимое файлаmain.cpp
.std::istream_iterator<std::string>
- итератор для чтения строк из потока ввода.std::ostream_iterator<std::string>
- итератор для записи строк в поток вывода.std::cout
- поток вывода, используемый для записи строк. Выполняемые действия:- Создается объект
std::istream_iterator<std::string>(std::ifstream(
main.cpp))
, который инициализирует итератор для чтения строк из файлаmain.cpp
. - Создается объект
std::ostream_iterator<std::string>(std::cout,
\n)
, который инициализирует итератор для записи строк в поток вывода с символом новой строки после каждой строки. - Вызывается функция
std::copy()
для копирования строк из итератора чтения в итератор записи. - Копирование продолжается до тех пор, пока не будут прочитаны все строки из файла
main.cpp
. - Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д