Тест: Работа с файлами и операции ввода-вывода в C++
Тест: Работа с файлами и операции ввода-вывода в C++ — Информатика 11 классАнглийский язык
Астрономия
Белорусский язык
Биология
География
ИЗО
Информатика
История
Итальянский язык
Краеведение
Литература
Математика
Музыка
Немецкий язык
ОБЖ
Обществознание
Окружающий мир
ОРКСЭ
Русский язык
Технология
Физика
Физкультура
Химия
Черчение
Для учителей
Дошкольникам
VIP — доступ
- Предметы »
- Информатика »
- 11 класс »
- Работа с файлами и операции ввода-вывода в C++
Работа с файлами и операции ввода-вывода в C++
Данный тест включает в себя вопросы по следующим темам
Информатика 11 класс | Автор: Онищенко Алексанр | ID: 6828 | Дата: 30.12.2015
Помещать страницу в закладки могут только зарегистрированные пользователи
Вопрос №
1
Укажите пространство имен, включающее все операции ввода-вывода.
System.Files
System.IO
Filesystem.Main
System.Operations
Вопрос №
2
Укажите название метода, который возвращает имена файлов (с указанием пути к ним) в указанном каталоге.
Введите ответ:
Вопрос №
3
Укажите класс, реализующий работу с каталогами в C++.
Filesystem
Folder
Directory
Нет верного ответа
Вопрос №
4
Укажите название метода, который возвращает имена подкаталогов (включая их пути) в указанной директории.
Введите ответ:
Вопрос №
5
Какие методы позволяют добавлять данные в текстовый файл?
WriteFile
WriteLine
WriteText
Write
Вопрос №
6
Укажите метод, который выполняет чтение строки символов из текущего потока и возвращает данные в виде строки.
GetString
GetLine
ReadString
ReadLine
Вопрос №
7
Укажите класс, который реализует чтение текстовых файлов в C++.
FileReader
StreamReader
TextReader
DataReader
Вопрос №
8
Укажите класс, который реализует запись текстовых файлов с C++.
StreamWriter
DataWriter
FileWriter
TextWriter
Вопрос №
9
Укажите класс, который реализует получение информации о файле в C++.
FileInfo
DataInfo
FileDescription
FileProperties
Вопрос №
10
Укажите класс, который отвечает за отслеживание изменений в файловой системе в C++.
FileSystemCatchFileSystemWatcher
FileSystemInfo
FileSystemObserver
Вопрос №
11
Укажите имена файлов, соответствующие формату коротких имен 8.3.
FileNa~.exe
FileNa~.ex
FileNa.exe
FileNa*.ex*
Вопрос №
12
Укажите исключение, возникающее при отсутсвии у непосредственно вызывающего класса или производного класса разрешения полного доверия при работе с файловой системой.
Введите ответ:
Вопрос №
13
Какие виды изменений в файловой системе, которые можно отслеживать в C++?
Changed
Edited
Created
Written
Какие свойства позволяют получить соответствующую информацию о файле?
GetName
Length
GetLength
CreationTime
Показать ответы
Получение сертификата
о прохождении теста
Доступно только зарегистрированным пользователям
© TestEdu. ru 2013-2022
E-mail администратора: [email protected]
Программирование на С++
Программирование на С++
Видео по теме
С++ с нуля: урок 1 — переменные, оператор присваивания
С++ с нуля: урок 2 — арифметические операции
С++ с нуля: урок 3 — директивы препроцессора
С++ с нуля, урок 4: условные операторы if и switch
С++ с нуля: урок 5 — операторы циклов while, for и do while
С++ с нуля: урок 6 — массивы, метод всплывающего пузырька
С++ с нуля: урок 7 — строки и функции работы с ними
С++ с нуля: урок 8 — функции: прототипы, перегрузка, рекурсия
С++ с нуля: урок 9 — области видимости переменных
С++ с нуля: урок 10 — битовые операции И, ИЛИ, НЕ, XOR
С++ с нуля: урок 11 — структуры
С++ с нуля: урок 12 — объединения, перечисления, typedef
С++ с нуля: урок 13 — указатели и ссылки, выделение памяти
С++ с нуля: урок 14 (часть 1) — функции работы с файлами
С++ с нуля: урок 14 (часть 2) — функции работы с файлами
С++ с нуля: урок 15 — стек, теория и практика
С++ с нуля: урок 16 — связные списки, теория и практика
С++ с нуля: урок 17 — бинарное дерево, теория и практика
С++ с нуля: урок 18 — указатели на функции
С++ с нуля: урок 19 — автоматические переменные и цикл типа for each ОглавлениеВведениеГлава 1. Введение в язык С++ 1.1. Структура и этапы создания программы на языке С++ 1.2. Стандарты языка С++ 1.4. Оператор присваивания 1.5. Системы счисления 1.6. Арифметические операции 1.7. Поразрядные операции языка С++ 1.8. Директивы препроцессора 1.9. Функции ввода/вывода printf() и scanf() Контрольные вопросы и задания Глава 2. Базовые конструкции языка С++ 2.1. Условные операторы if и switch 2.2. Операторы цикла языка С++ 2.2.1. Оператор цикла while 2.2.2. Оператор цикла for 2.2.3. Оператор цикла do while 2.2.4. Программирование вложенных циклов 2.3. Функции 2.4. Область видимости переменных Контрольные вопросы и задания Глава 3. Расширенное представление данных 3.1. Массивы 3.2. Работа со строками 3.3. Обработка элементов массива 3.4. Структуры 3.5. Битовые поля 3.6. Объединения 3.7. Перечисляемые типы 3.8. Типы, определяемые пользователем Контрольные вопросы и задания Глава 4. Указатели и динамическое представление данных 4.1. Указатели 4.2. Функции malloc() и free(). Ссылки 4.3. Стек 4.4. Связные списки 4.5. Бинарные деревья Контрольные вопросы и задания Глава 5. Основы работы с файлами 5.1. Работа с текстовыми файлами 5.2. Работа с бинарными файлами 5.3. Пример программирования. Простой словарь Контрольные вопросы и задания Глава 6. Основы объектно-ориентированного программирования 6.1. Понятие классов в С++ 6.2. Наследование 6.3. Дружественные классы и функции 6.4. Виртуальные функции 6.5. Перегрузка операторов Контрольные вопросы и задания |
Компиляция файлов C с помощью gcc, шаг за шагом | by Laura Roudge
Чтобы объяснить все этапы компиляции, нам нужно заранее прояснить несколько концепций программирования. В этой статье мы расскажем, что такое язык C, как его скомпилировать с помощью такого инструмента, как gcc, и что происходит при его компиляции.
Все программное обеспечение, программы, веб-сайты и приложения написаны на определенном языке программирования. По сути, все, что мы видим на экране своего компьютера или смартфона, — это просто множество кода, написанного на разных языках и определенным образом собранного воедино. Каждый язык программирования используется по-своему, и сегодня мы сосредоточимся на C.
C — это язык программирования, изобретенный Деннисом Ритчи, который впервые появился в 1972 году. Это то, что мы называем языком низкого уровня, что означает, что между C и машинным языком существует лишь небольшая абстракция, поэтому его можно считать более близким к компьютерному языку. аппаратное обеспечение. C также является скомпилированным языком , в отличие от интерпретируемого, что означает, что исходные файлы, написанные на C, должны быть скомпилированы, чтобы они были исполняемыми.
Прежде всего, давайте поговорим об инструментах, которые мы будем использовать в нашем примере. Мы будем работать с Unix-подобной операционной системой, поэтому примеры могут отличаться от Windows. Нам нужен доступ к shell , которая представляет собой «программу, которая берет команды с клавиатуры и передает их операционной системе для выполнения», согласно http://linuxcommand.org. Для этого нам понадобится терминал , или эмулятор терминала, который представляет собой просто окно, позволяющее нам взаимодействовать с оболочкой. Внутри терминала мы должны увидеть приглашение оболочки, содержащее ваше имя пользователя и имя машины, за которым следует переменная среды PS1, которая часто представляет собой символ «$». Мы можем вводить команды после этого символа в том, что мы называем 9.0011 командная строка. Нам также нужен текстовый редактор, такой как vi или emacs, для создания исходного файла.
Компиляция — это перевод исходного кода (кода, который мы пишем) в объектный код (последовательность операторов на машинном языке) компилятором .
Процесс компиляции состоит из четырех этапов:
- Предварительная обработка
- Компиляция
- Сборка
- Связывание
Компилятор, который мы будем использовать в качестве пример gcc , что означает Сборник компиляторов GNU . Проект GNU — это проект свободного программного обеспечения и массового сотрудничества, запущенный Ричардом Столлманом в 1983 году и позволяющий разработчикам бесплатно получить доступ к мощным инструментам.
Gcc поддерживает различные языки программирования, включая C, полностью бесплатен и является компилятором для большинства Unix-подобных операционных систем. Чтобы использовать его, мы должны установить его на свой компьютер, если его еще нет.
В нашем примере давайте посмотрим на исходный код внутри файла с именем «main.c», где «.c» — это расширение файла, которое обычно означает, что файл написан на C. Это изображение находится внутри текстового редактора. ви:
main.cРозовым цветом выделена директива препроцессора #include, которая указывает компилятору включить заголовочный файл stdio.h, но мы вернемся к этому позже.
Синим цветом выделены комментарии к коду, они полезны для запоминания того, что на самом деле делает ваш код спустя месяцы после его создания. Нам они не особо нужны в такой маленькой программе, но ставить их — хорошая практика.
Далее у нас есть точка входа, функция main(). Это означает, что программа начнется с выполнения операторов, которые находятся внутри блока этой функции, то есть между фигурными скобками. Здесь есть только два оператора: один, который напечатает предложение «Hello, World» на терминале, и другой, который говорит программе «вернуть» 0, если она вышла или завершилась правильно. Итак, после того, как мы скомпилировали его, если мы запустим эту программу, мы увидим только фразу «Hello, World».
Чтобы наш код main.c был исполняемым, нам нужно ввести команду «gcc main.c», и процесс компиляции пройдет все четыре этапа, которые он содержит. Конечно, у gcc есть опции, которые позволяют нам останавливать процесс компиляции после каждого шага. Давайте посмотрим на них.
1. Препроцессор
Препроцессор имеет несколько ролей:
- он избавляется от всех комментариев в исходных файлах
- он включает код заголовочный файл (файлы) , который представляет собой файл с расширением . h, который содержит объявления функций C и определения макросов
- он заменяет все макросы (фрагменты кода, которым было присвоено имя) их значениями
Результат этого шага будет сохранен в файле с расширением «.i», поэтому здесь он будет в main.i.
Чтобы остановить компиляцию сразу после этого шага, мы можем использовать опцию «-E» с командой gcc в исходном файле и нажать Enter.
Вот как должен выглядеть конец файла main.i:
2. Компилятор
Компилятор возьмет предварительно обработанный файл и сгенерирует IR-код (промежуточное представление), так что это создаст «.s» файл. При этом другие компиляторы могут создавать ассемблерный код на этом этапе компиляции.
После этого шага мы можем остановиться с опцией «-S» в команде gcc и нажать Enter.
Вот как должен выглядеть файл main.s:
3. Ассемблер
Ассемблер берет ИК-код и преобразует его в объектный код, то есть код на машинном языке (т.е. двоичный). Это создаст файл, оканчивающийся на «.o».
Мы можем остановить процесс компиляции после этого шага, используя опцию «-c» с командой gcc и нажав Enter.
Наш файл main.o должен выглядеть так (нет, он не читается человеком):
4. Компоновщик
Компоновщик создает окончательный исполняемый файл в двоичном виде и может играть две роли:
- связывает вместе все исходные файлы, то есть все остальные коды объектов в проекте. Например, если я хочу скомпилировать main.c с другим файлом с именемsecondary.c и превратить их в одну программу, на этом шаге объектный код вторичного.c (т.е.secondary.o) будет связан с Код объекта main.c (main.o).
- связывание вызовов функций с их определениями. Компоновщик знает, где искать определения функций в статических библиотеках или динамические библиотеки. Статические библиотеки являются «результатом того, что компоновщик копирует все используемые библиотечные функции в исполняемый файл», согласно geeksforgeeks. org, а динамические библиотеки «не требуют копирования кода, это делается путем простого размещения имя библиотеки в бинарном файле». Обратите внимание, что gcc по умолчанию использует динамические библиотеки. В нашем примере это когда компоновщик найдет определение нашей функции «помещает» и свяжет ее.
По умолчанию после этого четвертого и последнего шага, то есть когда вы вводите всю команду «gcc main.c» без каких-либо параметров, компилятор создаст исполняемую программу с именем a.out, , который мы можем запустить, набрав «./a.out» в командной строке.
Мы также можем создать исполняемую программу с желаемым именем, добавив параметр «-o» в команду gcc, поместив после имени файла или файлов, которые мы компилируем, и нажав Enter:
Итак, теперь мы можем либо ввести «./a.out», если вы не использовали параметр -o, либо «./my_program» для выполнения скомпилированного кода, вывод будет «Hello, World», а за ним следует приглашение оболочки появится снова.
Сборник компиляторов GNU предлагает гораздо больше замечательных инструментов для компиляции и работы с нашими программами, о которых стоило бы написать, но эта статья была посвящена основным шагам компиляции. Возможно, в следующий раз!
Компиляция программы на C: — За кулисами — GeeksforGeeks
C — это язык высокого уровня, и ему нужен компилятор для преобразования его в исполняемый код, чтобы программу можно было запустить…
www.geeksforgeeks.org
CS 11: Компиляция программ C
Важно понимать, что хотя некоторые компьютерные языки (например, Scheme или Basic) обычно используются с… простыми и легкими шагами, начиная с базовых концепций и заканчивая продвинутыми с примерами…
www.tutorialspoint.com
Промежуточное представление — Википедия
Промежуточное представление (IR) — это структура данных или код, используемый внутри компилятора или виртуального машина до…
en.wikipedia. org
Добавьте код C и C++ в свой проект | Android Studio
Добавьте код C и C++ в свой проект Android, поместив код в cpp
в вашем модуле проекта. Когда вы строите свой проект, это
код компилируется в нативную библиотеку, которую Gradle может упаковать с вашим приложением.
Затем ваш код Java или Kotlin может вызывать функции в вашей родной библиотеке.
через собственный интерфейс Java (JNI). Чтобы узнать больше об использовании JNI
Framework, прочитайте советы JNI для
Андроид.
Android Studio поддерживает CMake, что полезно для кроссплатформенных проектов.
Android Studio также поддерживает ndk-build
, который
может быть быстрее, чем CMake, но поддерживает только Android. Используя как CMake, так и ndk-build
в том же модуле в настоящее время не поддерживается.
Чтобы импортировать существующую библиотеку ndk-build
в вашу Android Studio
проект, научитесь
свяжите Gradle с вашим родным проектом библиотеки.
На этой странице показано, как настроить Android Studio с необходимые инструменты сборки, создайте новый проект на C/C++ поддержки и добавляйте в проект новые файлы C/C++.
Если вместо этого вы хотите добавить собственный код в существующий проект, Следуй этим шагам:
- Создайте новые собственные исходные файлы и добавьте
файлы в ваш проект Android Studio.
- Пропустите этот шаг, если у вас уже есть собственный код или вы хотите импортировать предварительно созданную нативную библиотеку.
- Настройте CMake для
встройте свой собственный исходный код в библиотеку. Этот скрипт сборки требуется
если вы импортируете и связываете готовые или платформенные
библиотеки.
- Если у вас есть собственная библиотека, для которой уже
CMakeLists.txt
скрипт сборки или используетndk-build
и включаетAndroid. mk
скрипт сборки, пропустите этот шаг.
- Если у вас есть собственная библиотека, для которой уже
- Настроить
Gradle, указав путь к вашему CMake или
ndk-build
. файл сценария. Gradle использует скрипт сборки для импорта исходного кода в ваш Проект Android Studio и упакуйте свою собственную библиотеку в приложение.
После того, как вы настроите свой проект, получите доступ к своим собственным функциям из Код Java или Kotlin с использованием фреймворка JNI. Чтобы создать и запустить приложение, нажмите Выполнить .
Примечание. Если в существующем проекте используется Инструмент ndkCompile
, перейдите на использование CMake или ndk-сборка
.
Загрузка NDK и инструментов сборки
Чтобы скомпилировать и отладить собственный код для вашего приложения, вам потребуется следующее компоненты:
- Родной комплект разработки для Android (NDK): набор инструментов, позволяющий использовать код C и C++ с Андроид. NDK предоставляет библиотеки платформ, которые позволяют управлять собственными действий и доступа к физическим компонентам устройства, таким как датчики и сенсорные вход.
- CMake:
внешний инструмент сборки, который работает вместе с Gradle для создания собственного
библиотека. Вам не нужен этот компонент, если вы планируете использовать только
ndk-сборка
. - LLDB: отладчик в Android Studio, который отлаживает нативный код.
Сведения об установке этих компонентов см. в разделе Установка и настройка NDK и CMake.
Создать новый проект с поддержкой C/C++
Чтобы создать новый проект с поддержкой собственного кода, процесс аналогичен создание любого другого Android Студийный проект, но с дополнительным шагом:
- В разделе мастера выберите свой проект , выберите тип проекта Native C++ .
- Нажмите Следующий .
- Заполните все остальные поля в следующем разделе мастера.
- Щелкните Далее .
- В разделе мастера Настройка поддержки C++ можно настроить
ваш проект с полем C++ Standard .
- Используйте раскрывающийся список, чтобы выберите, какую стандартизацию C++ вы хотите использовать. Выбор цепочки инструментов По умолчанию использует настройку CMake по умолчанию.
- Щелкните Готово .
После того, как Android Studio завершит создание нового проекта, откройте Project в левой части IDE и выберите Android вид из меню. Как показано на рисунке 1, Android Studio добавляет группу cpp :
Рисунок 1. групп представлений Android для собственных источников и внешние скрипты сборки.
Примечание: Это представление не отражает фактическую иерархию файлов. на диске, но группирует похожие файлы, чтобы упростить навигацию по вашему проекту.
В группе cpp можно найти все родные
исходные файлы, заголовки, скрипты сборки для CMake или ndk-build
и готовые
библиотеки, которые являются частью вашего проекта. Для новых проектов Android Studio
создает образец исходного файла C++, native-lib.cpp
, и помещает его
в src/main/cpp/
вашего модуля приложения. Этот образец
код предоставляет простую функцию C++, stringFromJNI()
, которая
возвращает строку "Привет с C++"
. Узнайте, как добавить дополнительные
исходные файлы в ваш проект в разделе о том, как
создавать новые собственные исходные файлы.
Подобно тому, как файлы build.gradle
инструктируют Gradle, как собирать
ваше приложение, CMake и ndk-build
требуют сценария сборки, чтобы знать, как собирать
ваша родная библиотека. Для новых проектов Android Studio создает сборку CMake.
сценарий, CMakeLists.txt
и помещает его в корневой каталог вашего модуля.
Чтобы узнать больше о содержимом этого скрипта сборки, прочитайте
Настройте CMake.
Сборка и запуск примера приложения
Когда вы нажимаете , запускаете , Android Studio создает и запускает приложение, которое отображает текст «Привет с C++» на вашем Android-устройство или эмулятор. В следующем обзоре описаны события, которые происходит для сборки и запуска примера приложения:
- Gradle вызывает ваш внешний скрипт сборки,
CMakeLists.txt
. - CMake следует командам в сценарии сборки для компиляции исходного кода C++.
файл
native-lib.cpp
в общую библиотеку объектов и имена этоlibnative-lib.so
. Затем Gradle упаковывает его в приложение. - Во время выполнения приложение
MainActivity
загружает собственный библиотека с использованиемSystem.loadLibrary()
. Родная функция библиотеки,stringFromJNI()
, теперь доступно для приложения. -
MainActivity.onCreate()
вызываетstringFromJNI()
, который возвращает"Hello from C++"
и использует его для обновленияTextView
.
Чтобы убедиться, что Gradle упаковывает нативную библиотеку в приложение, используйте Анализатор APK:
- Выберите Build > Build Bundle(s) / APK(s) > Build APK(s) .
- Выберите Сборка > Анализировать APK .
- Выберите APK или AAB из
папка app/build/outputs/
и нажмите OK . - Как показано на рисунке 2, вы можете увидеть
libnative-lib.so
в Окно APK Analyzer подlib/
./ Рисунок 2. Найдите собственную библиотеку с помощью APK Анализатор.
Совет: Если вы хотите поэкспериментировать с другими приложениями Android, используйте собственный код, нажмите File > New > Import Sample и выберите пример проекта из Ndk список.
Создание новых исходных файлов C/C++
Чтобы добавить новые исходные файлы C/C++ в существующий проект, выполните следующие действия:
- Если у вас еще нет каталога
cpp/
в основном источнике набор вашего приложения, создайте его следующим образом: - Откройте панель Project в левой части IDE и выберите в меню вид Project .
- Перейдите к ваш-модуль > источник .
- Щелкните правой кнопкой мыши главный каталог и выберите Создать > Справочник .
- Введите
cpp
в качестве имени каталога и нажмите OK . - Щелкните правой кнопкой мыши каталог
cpp/
и выберите Создать > Исходный файл C/C++ . - Введите имя исходного файла, например
native-lib
. - В меню Тип выберите расширение файла
для исходного файла, например
.cpp
.- Нажмите Редактировать типы файлов чтобы добавить другие типы файлов в меню, такие как
.cxx
или.hxx
. В новых расширениях файлов В появившемся диалоговом окне выберите другое расширение файла из Расширение источника и Расширение заголовка меню и нажмите ОК .
- Нажмите Редактировать типы файлов чтобы добавить другие типы файлов в меню, такие как