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

    [C++] Warnings esempi guida HTML.it

    Buondì. Ebbene, pure oggi 10 agosto c'è lavoro per voi.
    to studiando la guida al C++ pubblicata qui su HTML.it (per vedere subito del CODICE), prima di passare a cose più profonde dal punto di vista teoriche.
    STo utilizzando come IDE Mingw Developer Studio.
    Creo un progetto [B]Win32 Console Application[/]

    Esempio Hello Word:
    Codice PHP:
    //
    // PRIMO.CPP
    // Il primo esempio in C++
    //

    #include <iostream.h>

    main()
    {
        
    cout << " CIAO MONDO! ";
        return (
    0);

    Compilando ottengo:


    --------------------Configuration: 05-Hello_Console - Debug--------------------


    Compiling...

    main.cpp

    In file included from C:\Programmazione\MinGWStudio\MinGW\bin\..\lib\gcc \mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\backw ard\iostream.h:31,

    from main.cpp:6:

    C:\Programmazione\MinGWStudio\MinGW\bin\..\lib\gcc \mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\backw ard\backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
    main.cpp:9: warning: ISO C++ forbids declaration of `main' with no type



    main.o - 0 error(s), 2 warning(s)


    Però successivamente con BUILD & EXECUTE va tutto ok.

    Codice PHP:
    /*
    * Un semplice programma C++ che mostra 
    * l'uso del tipo char utilizzato sia come 
    * contenitore di caratteri che come 
    * contenitore di valori numerici interi
    */

    #include <stdio.h>

    main()
    {
    char carattere;
    char num;

        
    printf("Inserire un carattere a scelta e premere INVIO:");
        
    scanf("%c",&carattere);
        
    printf("Inserire un intero compreso tra 0 e 127: ");
        
    scanf("%d",&num);
        
    printf("Il carattere inserito e': %c\n",carattere);
        
    printf("Il numero inserito e': %d\n",num);

    return(
    0);

    Compilando ottengo:
    Hello Word.cpp:11: warning: ISO C++ forbids declaration of `main' with no type

    Hello Word.cpp: In function `int main()':
    Hello Word.cpp:18: warning: int format, different type arg (arg 2)


    Però poi andando su BUILD & EXECUTE ricevo 0 Errors, 0 Warnings ed il programmino va.

    Se invece dichiaro: int num, ottengo solo questo warnings:
    main.cpp:11: warning: ISO C++ forbids declaration of `main' with no type


    Eppure nella guida viene spiegato il codice proprio come scritto, quindi nn può esserci un errore "non visto dall'autore" tra char num e scanf("%d",&num);
    Ora la domanda è: c'è qualche cosa che nn è esattamente rispettosa dello Standard ANSI e quindi la guida è un po' vecchiotta?

    Notebook: Toshiba Qosmio X300-15U
    Windows Vista
    Ambienti: Visual C++/C# Express; Code::Blocks;

  2. #2
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    In realtà il codice da te riportato è C,nel c++ per quanto possa saperne,per l'input e l'output,vengono usati cout << e cin >> Comunque per rimediare agli errori:
    dato che l'input da te richiesto è un numero tra due interi,ovviamente nella dichiarazione non deve essere di tipo char,difatti il modo giusto per la dichiarazione è questo:

    int num;

    per quanto riguarda l'errore del main,aggiungi int prima del main,vedrai che andrà,esempio:

    int main()
    {
    codiceblablabla
    }

  3. #3
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    Il primo programma nn dovrebbe nemmeno compilare...

    Al di là del fatto che il C++ nn accetta int come sottinteso, viene invocata cout senza std:: o la dichiarazione del namespace.

    Per nn parlare poi del fatto che quella guida perde 100000 pagine a parlare degli operatori (+, -, /, ...) e nn ha nemmeno una pagina dedicata ai template, uno dei concetti chiave del linguaggio (si pensi alla STL costruita totalmente sui template)

    :rollo:

    Si potrebbe, tutti insieme, scrivere qualche pagina sul linguaggio.
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  4. #4
    Se leggi questo capitolo del C++ [http://programmazione.html.it/cplusp...lusplus_06.htm] dedicato agli identificatori capirai che l'autore ha esplicitamente detto che printf e scanf C++ le eredita dal C++.
    E inoltre, intende esplicitamente dichiarare la variabile num come char per poi catturarla al prompt come int.
    Non lo so xkè sono neofita, ma fa forse una conversione di tipo in corsa?

    Cmq ho notato che uno dei warnings è sempre riferito all iostream.h, dicendo che è deprecato l'uso del solo nome senza estensione. Il punto è che io l'estensione gliela do!!!

    Cmq, perchè bisogna far precedere il main da int? E xkè proprio int?

    Ehm...scusate, ma sto ancora al capitolo 0,1!!!

    Notebook: Toshiba Qosmio X300-15U
    Windows Vista
    Ambienti: Visual C++/C# Express; Code::Blocks;

  5. #5
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    mmm guarda io ho rivisto il capitolo che hai riportato e l'autore dice che quei comandi derivano dal C:

    Autore:
    L'esempio appena visto utilizza le funzioni printf e scanf che sono derivate dal linguaggio C.

    per quanto riguarda l'estensione del file Header,dipende tutto se il tuo compilatore utilizza il nuovo o il vecchio formato di questi.

  6. #6
    Pardon, ho commesso un'errore...è chiaro che non ha senso dire "C++ le eredita dal C++"... volevo dire dal C. :master:
    Come si dice...lapsus freudiano???

    Cmq, attendo qualche notizia per le altre piccole questioni...
    E se qualcuno può rispondere all'altro post sugli steps per imparare il C++ ne sarei lieto.

    Grazie mille a tutti della disponibilità.

    Notebook: Toshiba Qosmio X300-15U
    Windows Vista
    Ambienti: Visual C++/C# Express; Code::Blocks;

  7. #7
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Consiglio: cambia guida

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

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.