|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 5102
|
Aiutino x C
salve, ho un problemino con un programma...in pratica nn riesco a stampare a video la lista con stringhe; riesco a metterle nella lista ma poi nn me le stampa. Se metto %s nella printf mi da errore, se metto %c mi stampa solo un carattere...se qualcuno sa come fare
![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8878
|
allora:
1) posta il codice che non sono ancora capace di entrare nella tua mente ![]() 2) errori tipici sono non ficcare /0 cioè il terminatore di fine stringa ![]() ~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 5102
|
Eccolo qua:
#include <stdio.h> #include <malloc.h> #define ELE 5 typedef struct elemento { int info; struct elemento *next; } ele; ele *crea_lista(ele *, char); void stampa_lista(ele *); main() { int i; char nome; ele *inizio = NULL; for(i=0; i<ELE; i++) { printf("\n\tInserire l'elemento della lista: "); scanf("%s", &nome); inizio = crea_lista(inizio, nome); } printf("\n\tLista: \n"); stampa_lista(inizio); fflush(stdin); getchar(); } ele *crea_lista(ele *inizio, char nome) { ele *p, *aux; p = (ele *)malloc(sizeof(ele)); p->info = nome; p->next = NULL; if(!inizio) return p; else { aux = inizio; while(aux->next) aux = aux->next; aux->next = p; return inizio; } } void stampa_lista(ele *inizio) { while(inizio) { printf("%s ", inizio->info); inizio = inizio->next; } } |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8878
|
non mi son messo a vedere esattamente il codice ho visto che
1) scanf ("%s", nome) -> nome è un char non è una stringa -> %c 2) scorrendo il codice non vedo /0 -> che avevo detto nel primo post? ![]() edit: ho visto il codice ... cancella il tutto e rifallo ![]() ![]() ~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso Ultima modifica di Fenomeno85 : 11-01-2006 alle 19:55. |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8878
|
Codice:
char *string, car; int i=0, dim = BASE; string = (char*)malloc (BASE); do{ scanf ("%c",&string[i]); if (string[i]=='\n') string[i] = '\0'; i++; if (i==dim-1){ string = (char*)realloc(string,dim*2); dim = dim *2; } }while (string[i-1] != '\0'); printf ("\n\n%s",string); return 0; Se vuoi la lista allora cambia un attimo e puoi utilizzare parte del codice che ho visto che fatta giusta ![]() ~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 5102
|
mmm...nn si può mettere un puntatore *stringa xckè nn lo accetta in
inizio = crea_lista(inizio, stringa); magari se puoi modificarlo tu il mio codice così vedo comè ![]() |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8878
|
allora se crei la lista NON puoi usare printf ... ma devi visualizzare elemento per elemento.
guarda qui che ho messo come si fanno le liste e c'è un inserimento in coda. Non ho la forza mentale di mettermi a scrivere codice http://www.fenomeno85.altervista.org/pag.php?pag=c1.php ~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:09.