I was wondering before I got started if someone were to make their own game using C++ or some language and some libraries how would they add multiple levels or maps?
Whatever way they want, maps or levels or any of those game terms really don't exist in a computer, you're just talking about loading relevant data to help your application display things where they need to be displayed or so they can react to the world.
It entirely depends on what kind of game you're making. For instance a 2d tile map editor like Tiled is generic and just outputs information in different file formats using their own description of how the data should be laid out in the file, then you just load that data and grab whatever relevant information you need into your game objects.
But really, like I said it's totally generic, if your game is simple enough you can do the same thing by typing numbers in an array and passing it to one of your functions or typing letters in a text file and reading a single string and parsing it into a game map. What matters is that the data conveys the information you need.
Save files work the same way really, it's all just permanent storage for information.
Would they have to input everything manually? Would they have to build their own level/map editor? Could they take a preexisting level/map editor and adapt their game to recognize what another level editor puts out?
In general it's a time spent vs time saved thing, for instance if you think of a big AAA game like a 3d shooter or an MMO the team making the game obviously has thousands of hours of map development to do so investing in creating or licensing out a powerful tool ends up saving a ton of time in the long run.
Looking at it in the opposite light if you're just throwing together a simple map out of a text file it might be faster for -you- to just type down the text instead of dealing with making a tool or using a third party tool.