Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [C]Scanf e spazi

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    55

    [C]Scanf e spazi

    Salve,

    come posso fare per far riconoscere gli spazi come caratteri alla scanf?

    Ho provato a cercare in giro, ma tutti i consigli del tipo

    scanf("%[^\n]",buffer);

    oppure prova con la funzione fgets() ecc, non mi hanno risolto il problema.

    Grazie.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,246
    Il problema lo risolvi con la fgets.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    55
    ma non mi funziona.

    faccio cosi'.

    char buffer[20];

    fgets(buffer, 20, stdin);

    e non succede niente.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,246
    Cosa dovrebbe succedere?

    Attende i dati che devi scrivere da tastiera ... no?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    55
    Ho provato a fare un programma solo con la fgets e funziona, ma all'interno del programma in cui mi serve no.

    Ora vedo di risolvere.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,246
    Originariamente inviato da Doomw
    Ho provato a fare un programma solo con la fgets e funziona, ma all'interno del programma in cui mi serve no.

    Ora vedo di risolvere.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    55
    codice:
    char sendbuf6[85]="To: ";
    char destinatario[80];
    printf("Inserisci il nome del destinatario\n");
    fgets(destinatario, 80, stdin);
    strncat(sendbuf6, destinatario, sizeof(sendbuf6)-strlen(sendbuf6));
    sendbuf6[sizeof(sendbuf6)-1]=0;
    
    printf("%s", sendbuf6);
    questo e' il codice.

    Praticamente mi stampa:

    To:
    e poi continua con il resto del programma, mi salta proprio l'inserimento.

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,246
    Il problema è nel codice precedente ... se ci sono delle scanf allora devi pulire il buffer prima della fgets.

    Ci sono innumerevoli discussioni sull'argomento.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    55
    Esatto, risolto grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.