giury91
09-09-2013, 11:52
salve a tutti. sono nuovo del forum quindi se sbaglio a fare qualcosa correggetemi così la prossima volta non sbaglio più. stavo creando un programma per mio uso personale, premetto che non sono un programmatore ma uno studente dell'università di ingegneria che ha frequentato un corso di programmazzione in c.
il pezzo del programma incriminato è proprio l'inizio cioè:
#include <stdio.h>
#include <stdlib.h>
#define M 2
typedef struct{
char nome[20];
float l;
float costocm;
}isolante;
typedef struct{
isolante dati[M];
}isolantetot;
int main(int argc, char *argv[])
{
isolantetot itot;
itot.dati[0].nome="eps" ;
printf("l'altro %s\n",itot.dati[0].nome);
itot.dati[0].l=0.04;
itot.dati[0].costocm=1.5;
itot.dati[1].nome= "xps";
itot.dati[1].l= 0.037;
itot.dati[1].costocm=1;
for(i=0; i<=M; i++){
printf("isolante: %s prezzo al cm: %.2f conducibilita termica: %.3f \n",itot.dati[i].nome, itot.dati[i].costocm, itot.dati[i].l);
}
mi suso se non sia corretto come l'ho postato...
io vorrei assegnare al percorso itot.dati[M].nome una stringa non da tastiera con la scanf ma direttamente dal programma cosi da poter richiamare il nome dell'isolante anche più avanti nel programma ma non capisco come fare perche se lo scrivo in questa maniera la printf mi stampa al posto di "eps " o "xps" il seguente "(null)" .
non so se sono stato abbastanza chiaro...qualcuno saprebbe spiegarmi o risolvere il problema?
ogni commento è gradito. grazie per il tempo perso a leggere il post:)
il pezzo del programma incriminato è proprio l'inizio cioè:
#include <stdio.h>
#include <stdlib.h>
#define M 2
typedef struct{
char nome[20];
float l;
float costocm;
}isolante;
typedef struct{
isolante dati[M];
}isolantetot;
int main(int argc, char *argv[])
{
isolantetot itot;
itot.dati[0].nome="eps" ;
printf("l'altro %s\n",itot.dati[0].nome);
itot.dati[0].l=0.04;
itot.dati[0].costocm=1.5;
itot.dati[1].nome= "xps";
itot.dati[1].l= 0.037;
itot.dati[1].costocm=1;
for(i=0; i<=M; i++){
printf("isolante: %s prezzo al cm: %.2f conducibilita termica: %.3f \n",itot.dati[i].nome, itot.dati[i].costocm, itot.dati[i].l);
}
mi suso se non sia corretto come l'ho postato...
io vorrei assegnare al percorso itot.dati[M].nome una stringa non da tastiera con la scanf ma direttamente dal programma cosi da poter richiamare il nome dell'isolante anche più avanti nel programma ma non capisco come fare perche se lo scrivo in questa maniera la printf mi stampa al posto di "eps " o "xps" il seguente "(null)" .
non so se sono stato abbastanza chiaro...qualcuno saprebbe spiegarmi o risolvere il problema?
ogni commento è gradito. grazie per il tempo perso a leggere il post:)