Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите пожалуйста с задачей C++

Veronika Korsakova Ученик (68), открыт 1 месяц назад
2. Читаем отрывками

Проходя курсы, очень важно научиться читать и понимать задания. Даже если не получается одним глотком всё прочитать и осознать, нужно хотя бы пытаться делать это малыми отрывками.

Как тебе идея написать программу, которая поможет тебе научиться читать задания?

Задание: Напиши программу, которая открывает файл Задание 6-2-4.txt и читает из него определённую часть (см. секцию Входные данные).

Входные данные
Программе на вход подаётся номер первого символа, который нужно прочитать, и количество байт, которые нужно прочитать после этого символа.

Выходные данные
Программа должна вывести содержимое обозначенной части.

Используй методы .seekg и .read!

Sample Input 1:
480 47
Sample Output 1:
Задание: Напиши программу
Sample Input 2:
194 38
Sample Output 2:
прочитать и осознать
Sample Input 3:
1134 48
Sample Output 3:
Используй методы .seekg и .read!
Напишите программу. Тестируется через stdin → stdout
Time Limit: 5 секунд
Memory Limit: 256 MB

1
#include <iostream>
2
#include <string>
3
#include <fstream>
4
using namespace std;
5

6
int main()
7
{
8
ifstream ...;
9

10
int ...;
11
cin >> ...;
12

13
// Здесь будет твой код . . .
14
}
2 ответа
Demid Shuwpape Ученик (156) 1 месяц назад
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
// Открываем файл
ifstream file("Задание 6-2-4.txt", ios::in | ios::binary);

// Проверяем, удалось ли открыть файл
if (!file) {
cerr << "Не удалось открыть файл!" << endl;
return 1;
}

// Переменные для хранения входных данных
int position, bytesToRead;

// Считываем позицию и количество байтов
cin >> position >> bytesToRead;

// Перемещаем указатель чтения в нужную позицию
file.seekg(position);

// Создаем буфер для чтения данных
char* buffer = new char[bytesToRead + 1]; // +1 для завершающего нуля
buffer[bytesToRead] = '\0'; // Завершаем строку

// Читаем данные из файла
file.read (buffer, bytesToRead);

// Выводим считанные данные
cout << buffer;

// Освобождаем память
delete[] buffer;

// Закрываем файл
file.close();

return 0;
}
Похожие вопросы