Как прочитать символ или символы в середине строки из файла?

161
03 мая 2019, 01:00

Условие:

Имя входного файла input.txt Имя выходного файла стандартный вывод

Дан файл input.txt, в котором содержится текст. Напишите программу, которая найдет символ, который находится в середине файла.

Формат входных данных Входной файл содержит не более 10^7 символов с ASCII-кодами от 33 до 126.

Формат выходных данных Требуется вывести серединный символ входного файла на экран. Если в файле чётное количество символов, программа должна вывести два символа, которые находятся в середине через пробел.

#include <iostream>
#include <fstream>
#include <string>
#include <cstring>
using namespace std;
int main(){
    string buf;
    short k=0, n = 0;
    ifstream infile;
    infile.open("middle.txt", ios::in);
    if(infile.is_open()){
        infile >> buf;
        n = buf.size();
        cout << n << endl;
         k = n/2;
        if(n%2 == 1) {
            cout << buf[k];
        }
        else cout << buf[k-1] << " " << buf[k];
    }
    else{
        cout << "File error."<< endl;
        return 1;
    }
    infile.close();
return 0;
}

Задачу решил, но вот как сюда воткнуть seekg/tellg, так и не понял. Если кто-нибудь знает, подскажите. Спасибо.

READ ALSO
Разный порядок операторов

Разный порядок операторов

Почему эта программа не выдаёт ошибок для 1 и 2 строки, но выдаёт их для 3 и 4?

166
Отправка сообщений websocket

Отправка сообщений websocket

Пишу веб сокет сервер на языке javaЕсть ксласс с обработчиком событий: открытие, закрытие соединения, ошибки, и сообщения

167
Servlet java web.xml

Servlet java web.xml

Создал сервлет, имею файл webxml

192
Повторная инициализация cryptoki сетевого HSM

Повторная инициализация cryptoki сетевого HSM

Столкнулся с проблемой повторной инициализации библиотекипри первом вызове все отрабатывает отлично, но после истечения некоторого времени...

167