Scrivere primo programma in C++ con VS2010

di il
12 risposte

Scrivere primo programma in C++ con VS2010

Salve a tutti,
sono nuovo del forum.

Ho scritto dei programmi di base in C++ con Dev++ un po' di tempo fa.

Adesso vorrei capire come scrivere un primo programma in C++ con VisualStudio 2010
Parto con programmi semplici, tipici di chi sta imparando a programmare.

Ho seguito una guida su internet, ma il programma che voglio scrivere include la libreria iostream e il compilatore pare non trovarla.

Il file iostream.h deve comparire nella cartella dei file di intestazione?
A me non compare!
Dalla cartella dipendenze esterne ho trovato iostream, ho scelto 'Includi nel progetto' ma è finito nella cartella File di risorse.

Forse ho sbagliato nella scelta delle impostazioni iniziali del nuovo progetto: File->New->Progetto Console Win32 poi ho lasciato tutto di default

Avrei dovuto settare qualcosa?

Grazie infinite

12 Risposte

  • Re: Scrivere primo programma in C++ con VS2010

    Ecco perche si continua a dire di non utilizzare Dev-C++. iostream.h non è un file standard, il file giusto è quello incluso in VC2010 ovvero iostream.
    
    #include <iostream>
    
    int main()
    {
    }
    
    Un programma del genere dovrebbe compilarsi.
  • Re: Scrivere primo programma in C++ con VS2010

    Infatti ho messo così.

    Ecco il mio programma d'esempio, l'ho preso di qui:
    //programma atto a calcolare la media di n numeri
    
    #include<iostream.h>
    typedef float vettore[100];
    void leggi(int &d,vettore v);
    void calcola(int &d,vettore v,float &media);
    void stampa(int &d,float &media);
    
    void main()
    {
    int d,rip;
    float media;
    vettore v;
    do
     {
      cout<<"\n\n ***MEDIA DI N NUMERI***  by Enzo\n";
      leggi(d,v);
      calcola(d,v,media);
      stampa(d,media);
      cout<<"\n\n Vuoi continuare ancora?";
      cout<<"\n si=1 no=0 : ";
      cin>>rip;
      if(rip!=1)
       {
        cout<<"\n\n -----FINE PROGRAMMA-----";
       }
     }
    while(rip==1);
    }
    
    void leggi(int &d,vettore v)
    {
    int i;
    cout<<"\n\n Quanti sono i numeri per i quali";
    cout<<"\n devo calcolare la media?";
    do
     {
      cout<<"\n n(max 100 numeri)= ";
      cin>>d;
      if(d>100)
       {
        cout<<"\n ERROR!";
       }
     }
    while(d>100);
    for(i=0;i<d;i++)
     {
      cout<<"\n\n Inserisci il numero n="<<(i+1)<<" : ";
      cin>>v[i];
     }
    }
    
    void calcola(int &d,vettore v,float &media)
    {
    int i;
    media=0;
    for(i=0;i<d;i++)
    media=media+v[i];
    media=media/d;
    }
    
    void stampa(int &d,float &media)
    {
    cout<<"\n\n La media dei "<<d<<" numeri inseriti e':  "<<media;
    }
    VS dice:
    ------ Inizio compilazione: Progetto: media, Configurazione: Debug Win32 ------
    Compilazione avviata 30/03/2012 15:53:45.
    PrepareForBuild:
    Creazione directory "C:\Users\Administrator\dev\mydev\esercizi\media\Debug\".
    InitializeBuildStatus:
    Creazione di "Debug\media.unsuccessfulbuild". È stato specificato "AlwaysCreate".
    ClCompile:
    stdafx.cpp
    media.cpp
    c:\users\administrator\dev\mydev\esercizi\media\media\media.cpp(3): warning C4627: '#include <iostream.h>': ignorato durante la ricerca dell'utilizzo di un'intestazione precompilata
    Aggiungere la direttiva a 'StdAfx.h' o ricompilare l'intestazione precompilata
    c:\users\administrator\dev\mydev\esercizi\media\media\media.cpp(66): fatal error C1010: fine file imprevista durante la ricerca dell'intestazione precompilata. Si è omesso di aggiungere '#include "StdAfx.h"' all'origine?

    Compilazione NON RIUSCITA.

    Tempo trascorso 00:00:02.20
    ========== Compilazione: 0 completate, 1 non riuscite, 0 aggiornate, 0 ignorate ==========

    Che cosa dovrei fare?
    Secondo me devo impostare bene VS2010

    Grazie
  • Re: Scrivere primo programma in C++ con VS2010

    Non devi impostare bene VS. E' già a posto.
    1. Devi includere iostream senza il .h quindi diventa #include <iostream>
    2. scegli il file media.cpp col tasto dx e fai proprietà:
    Scegli C++
    Scegli Header precompilati
    Nel Crea/Usa metti: Non usare header precompilati
    Ricompila e dovrebbe funzionare.
  • Re: Scrivere primo programma in C++ con VS2010

    Ho correto la 1.

    Poi da Proprietà->Prop. di configurazione->C/C++->Intestazioni precompilate ho scelto 'Senza intestazioni precompilate'
    poi ho dato ok, F7 e dice:

    ------ Inizio compilazione: Progetto: media, Configurazione: Debug Win32 ------
    Compilazione avviata 30/03/2012 16:17:49.
    InitializeBuildStatus:
    Aggiornamento timestamp di "Debug\media.unsuccessfulbuild".
    ClCompile:
    Tutti gli output sono aggiornati.
    media.cpp
    c:\users\administrator\dev\mydev\esercizi\media\media\media.cpp(16): error C2065: 'cout': identificatore non dichiarato
    c:\users\administrator\dev\mydev\esercizi\media\media\media.cpp(20): error C2065: 'cout': identificatore non dichiarato
    c:\users\administrator\dev\mydev\esercizi\media\media\media.cpp(21): error C2065: 'cout': identificatore non dichiarato
    c:\users\administrator\dev\mydev\esercizi\media\media\media.cpp(22): error C2065: 'cin': identificatore non dichiarato
    c:\users\administrator\dev\mydev\esercizi\media\media\media.cpp(25): error C2065: 'cout': identificatore non dichiarato
    c:\users\administrator\dev\mydev\esercizi\media\media\media.cpp(34): error C2065: 'cout': identificatore non dichiarato
    c:\users\administrator\dev\mydev\esercizi\media\media\media.cpp(35): error C2065: 'cout': identificatore non dichiarato
    c:\users\administrator\dev\mydev\esercizi\media\media\media.cpp(38): error C2065: 'cout': identificatore non dichiarato
    c:\users\administrator\dev\mydev\esercizi\media\media\media.cpp(39): error C2065: 'cin': identificatore non dichiarato
    c:\users\administrator\dev\mydev\esercizi\media\media\media.cpp(42): error C2065: 'cout': identificatore non dichiarato
    c:\users\administrator\dev\mydev\esercizi\media\media\media.cpp(48): error C2065: 'cout': identificatore non dichiarato
    c:\users\administrator\dev\mydev\esercizi\media\media\media.cpp(49): error C2065: 'cin': identificatore non dichiarato
    c:\users\administrator\dev\mydev\esercizi\media\media\media.cpp(64): error C2065: 'cout': identificatore non dichiarato

    Compilazione NON RIUSCITA.

    Tempo trascorso 00:00:00.98
    ========== Compilazione: 0 completate, 1 non riuscite, 0 aggiornate, 0 ignorate ==========
  • Re: Scrivere primo programma in C++ con VS2010

    Aggiungi dopo l'include sta riga
    
    using namespace std;
    
  • Re: Scrivere primo programma in C++ con VS2010

    Funziona!!

    A cosa serve std?

    Grazie
  • Re: Scrivere primo programma in C++ con VS2010

    Tutte le funzioni di iostream risiedono nel namespace std (sta per standard). Il tuo problema si poteva risolvere in due modi.
    1. Aggiungendo la riga sopra (fa si che il compilatore cerchi nel namespace std tutte le funzioni che non trova altrove)
    2. ad ogni cin, cout aggiungere prima std::
    quindi prendendo una riga a caso il codice diventerebbe
    
    std::cout<<"\n\n Vuoi continuare ancora?";
    
    Scegli te quel che preferisci anche se a mio avviso è meglio la seconda in quanto non carichi tutto il namespace ma solo la funzione che ti serve.
  • Re: Scrivere primo programma in C++ con VS2010

    Se scrivo:
    #include <iostream>
    #include <cstdio>
    
    bool d;
    
    int main()
    	{
    		d=10<2;
    		printf("\n %B",d);
    		return 0;
        }
    
    perché viene stampato B e non false?
    Ho trovato questo: http://msdn.microsoft.com/it-it/library/ee370560.asp
    e
    http://caml.inria.fr/pub/docs/manual-ocaml/libref/Printf.html
  • Re: Scrivere primo programma in C++ con VS2010

    Nessuno di questi è inerente al linguaggio C. La guida sul C la trovi quà:
    printf
    Se vedi non esiste il formato %B
    in C++ si fà così
    
    #include <iostream>
    
    bool d;
    
    int main()
    {
    	d=10<2;
    	std::cout << std::boolalpha << d;
    	return 0;
    }
    
  • Re: Scrivere primo programma in C++ con VS2010

    Grazie per l'ottimo link

    Sempre per printf, quando metto un identificatore di formato diverso da come è definita la variabile, cosa accade? Cosa stampa printf?

    Ad esempio:
    #include <iostream>
    #include <cstdio>
    
    int  y=3,z;
    float x=1.75;
    
    int main()
    	{
    		printf("\n\nz=%d,y=%d,x=%f",z,y,x);
    		z=x/y;
    		printf("\n\nz=%f,y=%d,x=%f",z,y,x);
    		return 0;
        }
    perché restituisce
    z=0,y=3,x=1.75
    z=0.000000,y=0,x=0.000000
    piuttosto che i valori corretti?
    y non è convertito in float(uguale a x)? Perché?

    Grazie ancora
  • Re: Scrivere primo programma in C++ con VS2010

    Forse posso dare la risposta da solo:
    z è un int, mentre dovrei definirlo come float
    il valore di y si trasforma in float prima della divisione e il risultato della divisione viene assegnato a z che deve essere float per non perdere tutto. Alla fine y comunque rimane un int


    Giusto?
    Però VS non fornisce alcun warning!?! Perché?
  • Re: Scrivere primo programma in C++ con VS2010

    Qual è la differenza fra Release e Debug?

    Grazie

    p.s.: scusate l'ignoranza
Devi accedere o registrarti per scrivere nel forum
12 risposte