Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di sko
    Registrato dal
    Jun 2003
    Messaggi
    273

    [C] esercizio su getchar()

    codice:
    main()
    {
      char c;
    
      c=getchar();
      while (c !=EOF)
      {
         putchar(c);
         c=getchar();
      }
    }
    a)Copiare stdin su stdout fino ad EOF escluso e poi terminare.
    b)Copiare stdin su stdout fino ad EOF incluso e poi terminare
    c)Copiare stdin su stdout fino ad EOF escluso senza però terminare

    codice:
    main()
    {
       char c
       while ((c=getchar()) !=EOF)
       putchar(c);
    }
    a)Copiare stdin su stdout fino ad EOF escluso e poi terminare.
    b)Copiare stdin su stdout fino ad EOF incluso e poi terminare
    c)Copiare stdin su stdout fino ad EOF escluso senza però terminare


    IO ho provato a compilarli entrambi ma apparentemente mi danno lo stesso output,prendono tutto quello che sta su stdin e lo mettono su stdout;
    se qualcuno oltra la soluzione sa dirmi anche brevemente il perchè è meglio!grazie

  2. #2
    Utente di HTML.it L'avatar di pixer
    Registrato dal
    Oct 2000
    Messaggi
    614
    a)Copiare stdin su stdout fino ad EOF escluso e poi terminare.
    b)Copiare stdin su stdout fino ad EOF incluso e poi terminare
    c)Copiare stdin su stdout fino ad EOF escluso senza però terminare
    e che vuol dire?
    MySQL Worker - The OpenSource Multiplatform MySQL database Administrator (C++ powered)
    .:[ It resumes the development !! ]:.


  3. #3
    Originariamente inviato da pixer
    e che vuol dire?
    incluso/eslucluso vuol dire: "quando trova EOF cicla ancora o salta subito?"

    mi sa che è un esercizio di quelli tipo differenza tra while e do...while in PHP

    A rigor di logica il while si interrompe appena la codizione diventa false.. quindi appena trova EOF non entra + nel ciclo.. perciò scarterei la b... perà non capisco quel "terminare" .. guardando il secondo invece in cui putchar è fuori dal ciclo.... deduco che quell'ultimo putchar viene eseguito anche quando viene trovato EOF.. quindi, senza sapere molto di c, penso che sia quella la "terminazione"

    Perciò nel primo c e nel secondo a

    qualcuno confermi o smentisca

  4. #4
    avevo letto male il secondo

    Adesso ho capito:

    nel primo getchar viene effettuato dentro il ciclo.. quindi EOF è INCLUSO

    nel secondo getchar viene chiamato nella condizione.. quindi è escluso

  5. #5
    Originariamente inviato da }gu|do[z]{®©

    nel primo getchar viene effettuato dentro il ciclo.. quindi EOF è INCLUSO
    hum... però ho riletto e ho visto che putchar è chiamato prima.. quindi EOF non è incluso nella copia.... la differenza cmq è quella.. nel primo EOF viene letto DENTRO il ciclo che quindi termina all'iterazione successiva.... nel secondo viene letto NELLA CONDIZIONE DEL CICLO che quindi termina immediatamente.... poi bisogna interpretare le domande

    ma mi pare di capire che in entrambi i casi EOF non viene copiato...

  6. #6
    Utente di HTML.it L'avatar di pixer
    Registrato dal
    Oct 2000
    Messaggi
    614
    guido... EOF viene interpretato come "fine"..
    MySQL Worker - The OpenSource Multiplatform MySQL database Administrator (C++ powered)
    .:[ It resumes the development !! ]:.


  7. #7
    Originariamente inviato da pixer
    guido... EOF viene interpretato come "fine"..
    hem.. sì lo so.. ma è un carattere speciale cmq no?

  8. #8
    Utente di HTML.it L'avatar di pixer
    Registrato dal
    Oct 2000
    Messaggi
    614
    Originariamente inviato da }gu|do[z]{®©
    hem.. sì lo so.. ma è un carattere speciale cmq no?
    si
    MySQL Worker - The OpenSource Multiplatform MySQL database Administrator (C++ powered)
    .:[ It resumes the development !! ]:.


  9. #9
    Originariamente inviato da pixer
    si
    e viene copiato o no? non viene copiato perchè il ciclo si ferma alla sua lettura... no? quindi è escluso! Sul terminare bisognerebbe capire che cacchio vuol dire :master:

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.