Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [c] Aiuto "%c"

  1. #1

    [c] Aiuto "%c"

    Dobbiamo inizializzare un array di char con una dimensione già prefissatae in un secondo momento visualizzarea video il suo contenuto.
    ecco qui il codice:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char** argv)
    {
    	
    
    	char array[5];
    	int i;
    	
    	
    	for( i=0 ; i<5 ; i++ )
    	{
    		
    		printf("dammi car \n");
    		scanf( "%c" , &array[i] );
    		
    	}
    	
    	for( i=0 ; i<5 ; i++ )
    	{
    		
    		printf("%c" , array[i] );
    		
    	}	
    	
    	
    	
    	system("pause");
    	return 0;
    }
    Compila ma sbaglia ad eseguire: in pratica, al secondo "colpo"di for scrive due volte: "dammi char" e poi la ricostruzione della'rray è arrata.
    Purtroppo siamo OBBLIGATI a usare scanf() e non gets/puts e ci è vietato l'uso della libreria "string.h"
    Abbiamo usato anche il "%s" e sappiamo che va, ma perché non va con il "%c"?
    Sapete come risolvere??? Usiamo Geany con Ubuntu, grazie per la risposta

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Classico problema del carattere di newline che rimane nel buffer dello stream di input standard e ti fa "saltare" l'istruzione di input da tastiera successiva...

    codice:
    	for( i=0 ; i<5 ; i++ )
    	{
    		
    		printf("dammi car \n");
    		scanf( "%c" , &array[i] );
    		while (getchar() != '\n');
    		
    	}
    in questo modo elimini appunto il newline rimasto nel buffer e non hai problemi. Si può anche ricorrere a fflush(stdin) ma il comportamento della funzione su stdin non è definito dallo standard, di conseguenza la soluzione non funziona con tutti i compilatori...

    Usiamo Geany con Ubuntu, grazie per la risposta
    Togliete quel system("pause") allora ;D

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.