Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775

    leggere i messaggi di output



    sono alle prime armi con il C.. ho fatto un programmino semplice semplice per scuola che veda se due numeri sono uguali, e nel caso dai in output un messaggio...
    appena inserisco due numeri però la finestra in stile dos per intenderci sparisce subito, senza visualizzare il messaggio..
    sapete dirmi cosa devo mettere in fondo al programma in modo da poter leggere l'output??

    grazie mille!!

  2. #2
    Se effettui una ricerca nel forum scoprirai che la domanda è stata posta decine di volte.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775
    su molti codici vedo il retrn 0; ma non fa niente nel mio caso..

  4. #4
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    nn ricordo bene pare, anzi, ce un getch o scanf etc etc
    Per gli Spartani e Sparta usa spartan Il mio github

  5. #5
    return 0 (o altro valore, a seconda) ci deve essere sempre, ma prima metti una getchar().
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775
    così:

    codice:
    #include <stdio.h>
    int main()
    {
        int a,b;
        
        printf("Inserisci il primo valore.");
        scanf("%d",&a);
        printf("Inserisci il secondo valore.");
        scanf("%d",&b);
        
        if(a==b)
        {
            printf("&d e uguale a &d", a,b);
            getchar();
            return 0;
        }
        if(a>b)
        {
            printf("&d è maggiore di &d", a,b);
            getchar();
            return 0;
        }
        else
        {
            printf("&d è maggiore di &d", b,a);
            getchar();
            return 0;
        }
        
    }
    ma non mi fa vedere comunque il messaggio.. come mai?

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    codice:
    #include <stdio.h>
    int main()
    {
        int a,b;
        
        printf("Inserisci il primo valore.");
        scanf("%d",&a);
        printf("Inserisci il secondo valore.");
        scanf("%d",&b);
        
        if(a==b)
            printf("%d è uguale a %d", a,b);
    
        if(a>b)
            printf("%d è maggiore di %d", a,b);
        else
            printf("%d è maggiore di %d", b,a);
    
        getchar();
        getchar();
        return 0;    
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    ma non mi fa vedere comunque il messaggio.. come mai?
    Il buffer di input rimane sporco e la getchar viene "saltata". Pulisci il buffer in maniera simile a questa:

    Codice PHP:
    #include <stdio.h>

    void flush()
    {
        
    char ch;
        while ( (
    ch getchar()) != '\n' && ch != EOF);
    }

    void flushd()
    {
        
    char ch;
        do {
            
    ch getchar();
            if(
    ch == EOF)
                
    printf("C'era ancora: EOF\n");
            else if(
    ch == '\n')
                
    printf("C'era ancora: newline\n");
            else
                
    printf("C'era ancora: %c\n"ch);
        } while(
    ch != '\n' && ch != EOF);
    }
        

    int main()
    {
        
    int a;
        
    int b;
        
        
    printf("Inserisci il primo valore:\t");
        
    scanf("%d",&a);
        
    flushd();
     
        
    printf("Inserisci il secondo valore:\t");
        
    scanf("%d",&b);
        
    flushd();
        
        if(
    == b)
        {
            
    printf("%d e' uguale a %d"ab);      
        }
        if(
    b)
        {
            
    printf("%d e' maggiore di %d"ab);            
        }
        else
        {
            
    printf("%d e' maggiore di %d"ba);              
        }
        
        
    getchar();
        return 
    0;

    nel main ho messo "flushd" per farti vedere quello che c'è nel buffer, mentre sta per essere svuotato. Ovviamente, la versione senza output è "flush".
    Prova a fare qualche prova e a vedere quello che rimane nel buffer. Ad esempio, quando ti chiede un numero, scrivi qualcosa tipo "100 asdflahsdflò", cioè il numero, lo spazio e altri caratteri.


  9. #9
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775
    antotan del tuo codice non ho capito quasi niente tranne quello nell'int main, cioè il mio xD
    sono alle prime armi e del codice sopra non capisco cosa possa fare..

    comunque grazie provo con due getchar()

  10. #10
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775
    perchè se io inserisco 5 e 5 mi stampa:

    &d è uguale a &d&d e maggiore di &d

    ???

    codice:
    #include <stdio.h>
    int main()
    {
        int a,b;
        
        printf("Inserisci il primo valore.");
        scanf("%d",&a);
        printf("Inserisci il secondo valore.");
        scanf("%d",&b);
        
        if(a == b)
        {
            printf("&d e uguale a &d", a, b);
        }
        if(a > b)
        {
            printf("&d e maggiore di &d", a, b);
        }
        else
        {
            printf("&d e maggiore di &d",b, a);
        }
        getchar();
        getchar();
        return 0;
    }
    EDIT: che idiota.. ho messo & invece di % xD
    EDIT: se inserisco 5 e 5 ora mi stampa:

    5 è uguale a 55 e maggiore di 5

    perchè?

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.