A parte che qui di C++ non c'è niente. Questa linea:
codice:
*(line+a) = '/n'; //null-termino l'array
è sbagliata ( e il compilatore dovrebbe dare almeno uno warning dato che sono due caratteri, non uno).
Dev'essere:
codice:
*(line+a) = NULL; //null-termino l'array
In generale, però, l'intero impianto mi sembra