Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [C] getchar

  1. #1
    Utente di HTML.it L'avatar di cles
    Registrato dal
    Mar 2010
    Messaggi
    25

    [C] getchar

    ciao a tutti,
    sono nuovo del forum,novizio della programmazione e del linguaggio C con il quale ho iniziato.
    Da qualche mese ho iniziato a leggere un libro che spiega il linguaggio C a partire da un livello completamente zero come il mio,sono solo all'inizio ma ho già molte domande che mi frullano in testa e vorrei cominciare a darmi qualche risposta.
    Un esercizio di programmazione di questo libro mi chiede di modificare un programma di qualche capitolo indietro nel quale inserendo N si visualizzano i quadrati da 1 ad N e fare in modo che si fermi a 24 e chieda di premere Invio.
    Dopo qualche mezz'ora di prove e senza riuscirci ho guardato la soluzione e su questa vorrei delle lucidazioni: (non ho trovato il tasto code per postare il sorgente !?)

    ........
    printf("This program prints a table of squares.\n");
    printf("Enter number of entries in table: ");
    scanf("%d", &n);
    ch = getchar();

    for (i = 1; i <= n; i++) {
    printf("%10d%10d\n", i, i * i);
    if (i % 24 == 0) {
    printf("Press Enter to continue...");
    ch = getchar();
    .........

    1- perchè getchar() deve essere messo prima del ciclo?cosa non lo fà funzionare mettendolo soltanto dopo?

    2- perchè scrivere if (i % 24 == 0) e non if (i == 24)?

    3- io avevo usato while (ch != '\n').... per fermare a 24!;è il secondo getchar che lo fà fermare o cosa?

    Grazie tante a chi mi potrà aiutare.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Il getchar serve a svuotare il buffer dal tasto "Invio" utilizzato per l'inserimento del dato con la scanf. Se non ci fosse (e puoi provarlo ...) la prossima scanf non funzionerebbe ...

    La if (con l'operatore modulo %) viene eseguita ogni 24 incrementi e non solo dopo i primi 24 ... questo consente di fermare lo scorrimento delle righe ogni 24 righe, non solo la prima volta ...

    P.S. Il tasto Code è quello con # (se ti soffermi un attimo sopra quel tasto, appare il suggerimento ...)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di cles
    Registrato dal
    Mar 2010
    Messaggi
    25
    Grazie,ora è tutto chiaro.

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.