The only piece of code I've hidden away in an abstract class I'm extending, is reading the contents of an entire file into a string. The actual string -> input part, I write out and show in solutions.
Preprocessing the input before you go through using it, is a big part of solving the problems at hand. And it can be way more complicated than just making a list of ints too. Preprocessing is done outside my two functions as well.
For example, I was doing AoC2018-day17 the other night where you basically had input instructions that specified lines on a grid. By preprocessing this data, I don't store the input as those line instructions, but rather as a map<Point, Tile>.
This preprocessing can sometimes be quite a bit of code, depending on the complexity of the input, so I feel hiding it wouldn't be fair. But thats how I process input, and everyone uses their own approach.