Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [C] Problema con acquisizione stringhe da tastiera

    codice:
    int main()
    {
        char s[20];
        char s2[30];
        int i=0;
    
        scanf("%s", s);
        printf("%s\n", s);
    
        gets(s2);
        printf("%s", s2);
    
        return 0;
    }
    Se io scrivo "ciao a tutti" mi considera "ciao" come s e " a tutti" come s2
    Ora, considerato che sarebbe sbagliato agire così, in quanto scanf("%s", s) mi prende una stringa solo fino allo spazio, la mia intenzione sarebbe quella di creare una cosa di questo tipo:
    scrivo "ciao", mi da l'output "ciao, scrivo " a tutti" e mi da l'output " a tutti"

    Solo che se io scrivo semplicemente "ciao" il programma termina lasciando s2 vuoto.

    Sapete dirmi dove sbaglio? Grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,461
    Puoi utilizzare fgets per acquisire tutta la stringa
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Si si, ti ringrazio, questo lo so. Vorrei però capire cosa e perchè non funziona in questo determinato caso

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,461
    Ok ... devi pulire il buffer di input dopo la scanf ... aggiungi

    while(getchar()!='\n');
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    usa solo la gets o ancor meglio la fgets e lascia perdere la scanf.

    [edit]??? quando sono apparse tutte ste risposte ??? [/edit]

  6. #6
    Intendi così?
    codice:
        char s[20];
        char s2[30];
    
        while(getchar()!='\n')
        scanf("%s", s);
        printf("%s\n", s);
    
        gets(s2);
        printf("%s", s2);
    
        return 0;
    Invece di darmi come output "ciao" mi da solo "iao" (ti prego non odiarmi se ho capito sbagliato)

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,461
    Avevo scritto

    ... dopo la scanf ... aggiungi ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Asino io, ti ringrazio

  9. #9
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Quote Originariamente inviata da wFree Visualizza il messaggio
    Asino io, ti ringrazio
    E occhio al ;
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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 © 2024 vBulletin Solutions, Inc. All rights reserved.