Volevo sviluppare un programma che leggesse da file un numero e 2 nomi, li memorizzasse in apposite variabili e poi li stampasse.
Il problema è che la sottospecie di programma che ho partorito, memorizza e stampa due volte il secondo nome.
I dettagli tra i commenti al programma.
#include<stdio.h>
int main(int argv,char *argc[])
{
int num_al;
FILE *fptr;
char buff[15],*stringhe[2],stringa[15];
fptr=fopen(argc[1],"r");
fgets(buff,sizeof(buff),fptr); //prendo il numero e lo salvo in num_al
sscanf(buff,"%d",&num_al);
fgets(buff,sizeof(buff),fptr); //prendo il nome e lo passo a stringhe[0]
sscanf(buff,"%s",stringa);
stringhe[0]=stringa;
printf("%s ",stringhe[0]); //stringhe[0] punta davvero a quel nome, infatti me lo stampa
//correttamente
fgets(buff,sizeof(buff),fptr); //prendo il secondo nome e lo passo a stringhe[1]
sscanf(buff,"%s",stringa);
stringhe[1]=stringa;
//deve essere successo qualcosa a stringhe[0]_ ora contiene anch'essa un puntatore al secondo nome scannerizzato
printf("numero alunni:%d; nome1:%s\n nome2:%s",num_al,stringhe[0],stringhe[1]); //infatti qui mi viene stampato due volte il secondo nome
fclose(fptr);
return 0;
}