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

    [C] Prendere in input una stringa con spazi - provate tutte :(

    Ciao a tutti
    prima che mi diciate che è stato gia detto mille volte vi avverto LE HO PROVATE TUTTE

    ho provato:

    fgets (do invio e non va avanti)
    getline (idem)
    getchar
    (non riesco a svuotare il buffer fflush(stdin) non funziona)

    Ho provato cosi:

    void catturaMessaggio(char * msg){

    strcpy(msg, ""); //Azzero la stringa in ingresso
    char car;
    int i=0;

    //Svuoto il buffer
    do{
    car=getchar(); //Legge un carattere da stdin fino a /n oppure EOF
    }while(car!='\n' && car!=EOF);

    car=getchar();
    while(car != '\n'){ //Finche non ho premuto invio
    msg[i]=car;
    car=getchar();
    i++;
    }
    msg[i]='\0'; //Chiudo la stringa presa in input con il terminatore di stringa \0
    }

    Ma c'è qualcosa di sbagliato perchè le prime volte va poi invece si blocca sul primo while e devo dare invio a mano per andare sul secondo while.

    Come lo correggo??

  2. #2
    se vuoi prendere un carattere alla volta prova così
    codice:
    #include <stdio.h>
    
    int main ()
    {
    
    	char str [100];
    	unsigned int i = 0;
    	while ( !feof( stdin ) ) {
    		char s = fgetc ( stdin );
    		str [i] = s;
    		i++;
    	}
    	str [i] = '\0';
    	
    	printf ("%s", str );
    	
    	return (0);
    	
    }
    ciao
    sergio

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Non capisco quali difficolta' ci siano con del codice simile

    codice:
       char s[100];
    
      fgets(s, 100, stdin);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    mi sembra che voglia acquisire un carattere alla volta

  5. #5

    Re: [C] Prendere in input una stringa con spazi - provate tutte :(

    Originariamente inviato da phpvalefede
    Ciao a tutti
    prima che mi diciate che è stato gia detto mille volte vi avverto LE HO PROVATE TUTTE
    se è come dici, allora è inutile pensare di trovare una soluzione al tuo problema.. non ti pare?
    ;-)

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da mondobimbi
    mi sembra che voglia acquisire un carattere alla volta
    Mah ... il titolo e' "Prendere in input una stringa con spazi" e il fatto che lo stia prendendo un carattere alla volta e' solo, secondo me, perche' non e' riuscito in altro modo.

    Ce lo chiarira' lui ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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