Non sono bravissimo con il linguaggio c ma posso aiutarti e voglio farlo
un errore hai inserito una funzione all'interno del main NON è POSSIBILE inseririre
funzioni all'interno di altre funzioni IN NESSUN LINGUAGGIO
la struct struttura è all'interno del main quindi è locale NON MODIFICABILE da altre
funzioni se non si passa per riferimento i puntatori
SOLUZIONI
scrivere la struct fuori dal main e renderla globale ("accessibile da tutte le funzioni")
o passare un puntatore alla funzione e modificarla
soluzione con struttura globale
codice:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define LUNGHEZZA 10
struct part { // SE DEVI ACCEDERE A STRUTTURA O USI PUNTATORI O è GLOBALE
// FUORI DAL MAIN
char Cognome[LUNGHEZZA+1], Nome[LUNGHEZZA+1];
}struttura;
void inserisci (void);//MANCAVA IL PUNTO E VIRGOLA FINE ISTRUZIONE
int main(void){
printf("Ciao\n");
int numero;
printf("Ciao scrivi 1 se vuoi inserire nome e cognome");
scanf("%d", &numero);
if (numero == 1)
inserisci();
}// FINE MAIN
void inserisci (void)// LA FUNZIONE ERA SCRITTA ALL'INTERNO DEL MAIN
{
int i;
printf("nome?");
//for (i=0; i<LUNGHEZZA;i++) SOSTITUIAMOLO CON UN SCANF %S
scanf("%s", struttura.Nome);
fflush(stdin); // serve per pulire stdin
printf("\n");
printf("Cognome?");
//for (i=0; i<LUNGHEZZA;i++)
scanf("%s", struttura.Cognome);
printf("\n");
}
d
soluzione con puntatori
codice:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define LUNGHEZZA 10
typedef struct part { // creiamo un tipo struttura di nome s
char Cognome[LUNGHEZZA+1], Nome[LUNGHEZZA+1];
}s;
void inserisci (s*);//funzione che riceve un puntatore di tipo s
int main(void){
s struttura;
printf("Ciao\n");
int numero;
printf("Ciao scrivi 1 se vuoi inserire nome e cognome");
scanf("%d", &numero);
if (numero == 1)
inserisci(&struttura);//invio il puntatore a struttura
puts(struttura.Nome);
puts(struttura.Cognome);
getchar();
getchar();
}// FINE MAIN
void inserisci (s* a)
{
int i;
printf("nome?");
//for (i=0; i<LUNGHEZZA;i++) SOSTITUIAMOLO CON UN SCANF %S
scanf("%s", a->Nome);
fflush(stdin); // serve per pulire stdin
printf("\n");
printf("Cognome?");
//for (i=0; i<LUNGHEZZA;i++)
scanf("%s", a->Cognome);
printf("\n");
}