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

    [C] Problema con questo codice

    Ciao a tutti. Sto cominciando a muovere i primi passi nella programmazione in C.
    Come da titolo:

    codice:
    #include <stdio.h>
    main()
    {
    int c;
    int i = 0;
    while ((c=getchar()) != '$')
      i++;
    printf("%d\n", i);
    getchar();
    }
    vorrei che contasse tutti i caratteri diversi da $ e che infine mi stampasse tale valore.
    I miei dubbi sono due:
    1) il programma non riconosce l'ultimo getchar e non appena inserisco $, esso termina immediatamente;
    2) poco prima che si chiuda riesco a vedere il valore di i che il programma stampa e mi sono accorto che è sempre il doppio del numero di caratteri che io inserisco. Come mai??

    Vi ringrazio in anticipo per l'aiuto.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466

    Moderazione

    Il titolo che hai usato senz'altro dice poco del problema specifico, ed è lo stesso che hai indicato per tutte le tue discussioni.

    Leggi il Regolamento per conoscere le norme da seguire nell'indicazione dei titoli.

    Ti riporto qui di seguito la parte che più interessa:

    • Indicare il linguaggio di programmazione.
      Il titolo attribuito ad ogni nuova discussione segue un preciso schema utile data la natura "multilinguaggio" del forum:
      [NOME LINGUAGGIO (E VERSIONE)] Argomento della discussione.
      Questa convenzione consente di mantenere un certo ordine nel forum e facilitarne la consultazione e le ricerche al suo interno, e pertanto va rispettato, eventualmente prendendo la maggior parte delle discussioni esistenti come valido spunto.

      Per il linguaggio Java utilizzate il forum Java.

      Per il linguaggio Visual Basic, VB.NET, C# e altri linguaggi per il .NET Framework, utilizzate il forum Visual Basic e .NET Framework.

      Il "tag" [?] indica tutte le discussioni non riconducibili ad un linguaggio presente in elenco oppure a discussioni in cui il linguaggio è indifferente o da scegliere successivamente, fermo restando che il quesito riguardi sempre e comunque la "Programmazione" in senso stretto.

      Il "tag" [OT] va usato per segnalare le discussioni che riguardano l'argomento "Programmazione" da vicino ma che non rappresentano una vera e propria richiesta d'aiuto strettamente correlata all'uso di un linguaggio di programmazione specifico.
    • Evitare titoli e contenuti troppo generici.
      Sono da evitare titoli generici come, ad esempio, "problema", "aiuto", "help", "errore" oppure epiteti come "urgente", "difficile", "solo per esperti" e così via.
      Il titolo deve essere quindi significativo e fornire una breve descrizione sintetica del problema consentendo agli utenti di conoscere il contenuto del messaggio senza doverlo aprire e leggere esplicitamente.
      Si tratta di una informazione tanto importante quanto sottovalutata, pertanto si esige la massima cura da parte degli utenti nello specificarla; quindi, se il titolo della vostra discussione è composto da un vocabolo o inizia per "problema con", è probabile che stiate desiderando inconsciamente di vederla chiusa presto....
      Se possibile, cercate di controllare gli errori grammaticali e gli errori relativi ai nomi di librerie, funzioni, classi e membri per facilitare le ricerche agli altri partecipanti del forum e anche a voi stessi. Anche il linguaggio usato nel messaggio deve essere comprensibile (evitare abbreviazioni da SMS e parole dialettali), ricontrollando che le frasi abbiano senso in modo che non si debbano scrivere decine di messaggi solo per stabilire il problema.
    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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