Ciao a tutti, il mio codice è questo, scritto in C

codice:
void insertArticoliFile() {
    int numeroVolte,i;
    FILE *listaarticoli;
    string buffer;
    listaarticoli = fopen("articoli.txt", "a+");
                                printf("\n\nQuanti articoli vuoi inserire: (MAX 100)");
                            scanf("%d", &numeroVolte);
                            if ((numeroVolte >= 0) && (numeroVolte <= 100))
                                for (i = 0; i <= 2; i++) {

    
/*
    if (listaarticoli == NULL) {
        listaarticoli = fopen("articoli.txt", "w+");
    }
*/

    
    printf("\nInserire il codice dell'articolo (5 cifre): ");
    scanf("%s", buffer);
    writeOnFile(buffer, "|", listaarticoli);
    
    printf("\nInserire la descrizione dell'articolo: ");
    scanf("%s", buffer);
    writeOnFile(buffer, "|", listaarticoli);
    
    printf("\nInserire il prezzo d'acquisto dell'articolo (in Euro): ");
    scanf("%s", buffer);
    writeOnFile(buffer, "|", listaarticoli);
    
    printf("\nInserire il prezzo di vendita dell'articolo: ");
    scanf("%s", buffer);
    writeOnFile(buffer, "@", listaarticoli);
    
    fclose(listaarticoli);
        if (buffer != NULL)
        free(buffer);
}
come vedete è una funzione, la uso all'interno di un programma che sto realizzando.

Il problema è che il for non funziona, nel senso che fa eseguire il contenuto una sola volta e poi netbeans mi riporta Run Failed Exit Value 1.

Non so proprio come risolvere, e il programma mi serve urgentemente

Mi date una mano please?