Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    102

    Problema con creazione funzione per leggere stringa

    Salve a tutti, vorrei creare ( a scopo didattico ) una funzione che mi permetta di leggere una stringa carattere per carattere.Ho scritto questo codice ma il programma non funziona correttamente:
    codice:
     
    #include <stdio.h>
    
    void leggi(char *c);
    
    #define N 20
    
    int main()
    {
            char s[N];
            leggi(s);
            printf("%s",s);
    }
    
    void leggi(char *c)
    {
            int i=0;
            do
            {
                    scanf("%c",c+i);
                    i++;
    
            }while(i<N && *(c+i)!='\n');
    
            *(c+i)='\0';
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    1) che vuoi dire esattamente con " leggere una stringa carattere per carattere " ?

    2) che vuol dire " non funziona correttamente " (dettaglia ...)

    3) a cosa ti serve?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    102
    Originariamente inviato da oregon
    1) che vuoi dire esattamente con " leggere una stringa carattere per carattere " ?

    2) che vuol dire " non funziona correttamente " (dettaglia ...)

    3) a cosa ti serve?
    Si vede dalla funzione, praticamente non voglio leggere un intera stringa, ma un carattere alla volta e salvarlo appunto in un array di caratteri.
    Una volta inseriti i caratteri, dopo essere andato a capo il programma non termina. In particolare si blocca nel ciclo do while

    Spero di essere stato chiaro

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Non puoi usare la getchar per quello che vuoi fare (se ho capito bene) perché è una funzione che si attende comunque l'invio al termine dell'input.

    E comunque deve essere

    i<N-1
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    102
    Originariamente inviato da oregon
    Non puoi usare la getchar per quello che vuoi fare (se ho capito bene) perché è una funzione che si attende comunque l'invio al termine dell'input.

    E comunque deve essere

    i<N-1
    Si infatti
    L'uso dei puntatori è corretto ? Ho fatto la stessa cosa che avrei fatto con un vettore di int

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da Ghemon-a
    Si infatti
    L'uso dei puntatori è corretto ? Ho fatto la stessa cosa che avrei fatto con un vettore di int
    Sì ma al posto della getchar puoi usare una funzione (non standard) come getche
    Sarà quindi

    #include <conio.h>

    c[i]=getche();

    e deve essere

    } while(i<N-1 && c[i-1]!='\r');
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    102
    Originariamente inviato da oregon
    Sì ma al posto della getchar puoi usare una funzione (non standard) come getche
    Sarà quindi

    #include <conio.h>

    c[i]=getche();
    Scusa, ma è impossibile usare scanf ?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da Ghemon-a
    Scusa, ma è impossibile usare scanf ?
    Ti ho già detto ... la scanf si attende l'invio per ogni carattere perché è una funzione di tipo buffered.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    102
    Originariamente inviato da oregon
    Ti ho già detto ... la scanf si attende l'invio per ogni carattere perché è una funzione di tipo buffered.
    Ok, grazie mille, ora funziona
    Sempre disponibile

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296

    Moderazione

    Originariamente inviato da Ghemon-a
    Problema con creazione funzione per leggere stringa
    In futuro, ricordati di inserire il linguaggio nel titolo, come richiesto dal Regolamento.

    Qui l'ho aggiunto io.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.