Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - acquisire numero e poi stringa con spazi
Forum - C/C++ - acquisire numero e poi stringa con spazi

Avatar
sd (Normal User)
Newbie


Messaggi: 4
Iscritto: 23/06/2013

Segnala al moderatore
Postato alle 12:16
Mercoledì, 03/07/2013
ciao a tutti, come faccio ad acquisire un numero e poi una stringa con gli spazi?
io ho provato così e non funziona:
Codice sorgente - presumibilmente C/C++

  1. main(){
  2.     int num;
  3.     char *string;
  4.     scanf("%d", &num);
  5.     scanf("%[^\n]", string);
  6. }



ho provato anche in questo modo ma non va lo stesso:

Codice sorgente - presumibilmente C/C++

  1. main(){
  2.     int num;
  3.     char *string;
  4.     scanf("%d", &num);
  5.     gets(string);
  6. }



il problema è che non mi esegue la seconda lettura! cioè non eseguire la seconda "scanf" nel primo codice e il "gets" nel secondo codice! help!

Ultima modifica effettuata da sd il 03/07/2013 alle 12:18
PM Quote
Avatar
ZioCrocifisso (Member)
Pro


Messaggi: 135
Iscritto: 06/03/2013

Segnala al moderatore
Postato alle 13:04
Mercoledì, 03/07/2013
gets non va mai usato, perché porta a buffer overflow, e inoltre l'hai usato male, perché gli hai passato un puntatore che non punta a niente. Lo stesso per lo scanf del primo codice: gli hai passato solo un puntatore non inizializzato, devi passargli della memoria allocata (per esempio un array). Usa getchar in un loop (per esempio finché non incontri '\n').

Ultima modifica effettuata da ZioCrocifisso il 03/07/2013 alle 13:06
PM Quote
Avatar
sd (Normal User)
Newbie


Messaggi: 4
Iscritto: 23/06/2013

Segnala al moderatore
Postato alle 16:13
Mercoledì, 03/07/2013
wo grande grazie :)

PM Quote