'Code moves up lines when its not supposed to

I've recently started programming in C++ (or rather, programming in general), and have been trying to make Tic Tac Toe. This is as far as I have gotten, but when I run the code and type in more than 3 numbers, the 2. and 3. lines start adding themselves to the first. Anyone got an idea what this could be caused by?

#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <string>



using namespace std;
string inp;
string inpf;
bool turns = true;

string s1_9[]{ "- ", "- ", "- ", "\n" "- ","- ", "- ","\n", "- ", "- ", "- " };

void printmap() {

    for (char i = 0; i < 10; i++) {

        cout << s1_9[i];
    
    }
}





int main() {
    system("cls");
    printmap();
    
    if (turns) {
        cin >> inp;


         if (inp == "1") {
            s1_9[0] = " X";
            turns = false;
            return main();
    }
        else if (inp == "2") {
            s1_9[1] = " X";
            turns = false;
            return main();
        }
        else if (inp == "3") {
            s1_9[2] = " X";
            turns = false;
            return main();
        }
        else if (inp == "4") {
            s1_9[3] = " X";
            turns = false;
            return main();
        }
        else if (inp == "5") {
            s1_9[4] = " X";
            turns = false;
            return main();
        }
        else if (inp == "6") {
            s1_9[5] = " X";
            turns = false;
            return main();
        }
        else if (inp == "7") {
            s1_9[6] = " X";
            turns = false;
            return main();
        }
        else if (inp == "8") {
            s1_9[7] = " X";
            turns = false;
            return main();
        }
        else if (inp == " 9") {
            s1_9[8] = " X";
            turns = false;
            return main();
        }
         





    }
    else {
        cin >> inpf;
        if (inpf == "1") {
            s1_9[0] = " 0";
            turns = true;
            return main();
            
        }
        else if (inpf == "2") {
            s1_9[1] = " 0";
            turns = true;
            return main();
        }
        else if (inpf == "3") {
            s1_9[2] = " 0";
            turns = true;
            return main();
        }
        else if (inpf == "4") {
            s1_9[3] = " 0";
            turns = true;
            return main();
        }
        else if (inpf == "5") {
            s1_9[4] = " 0";
            turns = true;
            return main();
        }
        else if (inpf == "6") {
            s1_9[5] = " 0";
            turns = true;
            return main();
        }
        else if (inpf == "7") {
            s1_9[6] = " 0";
            turns = true;
            return main();
        }
        else if (inpf == "8") {
            s1_9[7] = " 0";
            turns = true;
            return main();
        }
        else if (inpf == "9") {
            s1_9[8] = " 0";
            turns = true;
            return main();
        }

        
    }

}

c++


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source