Использовать seekg с чем-то кроме возвращённого tellg для текстовых потоков непортабельно. Это может кинуть как на 20 символ, так и на 20й байт. Даже если используется ASCII, на Win есть символ, кодирующийся двумя байтами. В результате может получится несоответствие между тем, что вернёт 21я подряд операция чтения одного символа и тем, что вернёт чтение символа после seekg(20...