Newsgroup: it.comp.lang.c++
Titolo: cin e cout non dichiarati ???? HELP

 expected constructor, destructor, or type conversion before '<<' token 
Inutile dire che sono ore ed ore che ricontrollo il codice in cerca di 
errori ...
Thx anticipati, se vi serve il codice ve lo posto ...

 stessa cosa per il 'cin'
Fai così.
Apri il tuo manuale e riguardati i seguenti argomenti:
 1. che cose un namespace?
 2. che cose'è il namespace 'std'?
Poi, riapri il tuo sorgente, e sostituisci 'cerr' con 'std::cerr', e fai lo
stesso con 'cout' e 'endl'. Compilalo. Se non ci sono altri errori, si
compilerà. 
Ora, riapri il tuo sorgente, togli tutti gli 'std::' e aggiungi "using
namespace std;" prima del 'main'. Compilalo. Se non ci sono altri errori,
si compilerà.   
Infine, riapri ancora il tuo sorgente, togli lo 'using' di prima e
sostituiscilo con
 using std::cerr; using std::cout; using std::end;
Quindi compilalo. Se non ci sono altri errori, si compilerà. 
Max
Max

 constructor, destructor, or type conversion before '<<' token
Mi sono dimenticato di dire che sto scrivendo il codice di una funzione, 
non un main ... ho provato anche a prendere la mia bella funzione e 
farla diventare un main, ma tutti gli errori restano ...

 farla diventare un main, ma tutti gli errori restano ...
Posta il codice (oddio non posso guardareeeee)

 Posta il codice (oddio non posso guardareeeee)
Innanzitutto, il risultato dovrebbe essere un programma che permette di 
generare personaggi di D&D ( lo sto facendo per pure soddisfazione 
personale ^_^ ), quella che segue è solo una funzione che dovrebbe 
generare il personaggio e salvare i dati acquisiti su file, il main non 
l'ho ancora scritto!
Mi rendo conto che ci saranno parecchi errori poiché molte funzioni e 
molti comandi non li avevo mai usati ... stavo appunto cercando di 
testarli per capire come funzionano, ma il compilatore ha iniziato a 
dare i numeri ... è la prima volta che uso funzioni scritte su file 
diverso da quello del main, suppongo di aver fatto qualche errore a 
riguardo.
Uso Dev-C++ 4.9.9.2
#include <iostream>
void make_char ()
{
      FILE* character = fopen ( "character.dat", "wb" );
      char name[36];
  	 char gender[8];
  	 char ch;		// variabile di supporto
  	 bool a;		// variabile di supporto
  	 int str, dex, con, in_, wis, cha;	// punteggi caratteristica
  	 int race, job;		// altro
 
	 //Scelta del sesso
  	 for ( a=true; a; ) {
	 	   std::cout <<"\nDammi il sesso del personaggio ( m / f ): ";
  	 	   cin >> ch;
  	 	   switch ( ch ) {
	 			  case 'm': gender = 'maschio'; a = false; break;
	 			  case 'f': gender = 'femmina'; a = false; break;
				  default: cout <<"\n Valore non valido! devi inserire m oppure f."; 
break;
				  }
	  	  }
      //Scelta del nome
	 cout <<"\nDammi nome e cognome del personaggio ( max 30 caratteri ): ";
	 cin >> name;
 
	 //Scelta della razza
	 cout <<"\nScegli la razza inserendo il numero corrispondente:";
	 cout <<"\n1. Umano ( nessun modificatore )";
	 cout <<"\n2. Elfo ( +2 destrezza, -2 costituzione )";
	 cout <<"\n3. Mezzelfo ( nessun modificatore";
	 cout <<"\n4. Nano ( +2 costituzione, -2 carisma )";
	 cout <<"\n5. Halfling ( +2 Destrezza, -2 Forza )";
	 cout <<"\n6. Gnomo ( +2 Costituzione,  -2 carisma )";
	 cout <<"\n7. Mezzorco ( +2 Forza, -2 Intelligenza, -2 carisma )";
	 cout <<"\nOpzione N°: ";
	 cin >> race;
	 //Controllo
	 while ( race < 1 && race > 7 ) {
	 	   cout <<"\nValore non valido! inserisci un numero presente 
nell'elenco: ";
	 	   cin >> race;
		   }
      //Classe
      /* DONE (#4#): Aggiungi le altre classi. */
      cout <<"\nScegli la classe inserendo il numero corrispondente:";
      cout <<"\n1. Guerriero";
      cout <<"\n2. Barbaro";
      cout <<"\n3. Ranger";
      cout <<"\n4. Paladino";
      cout <<"\n5. Chierico";
      cout <<"\n6. Druido";
      cout <<"\n7. Mago";
      cout <<"\n8. Stregone";
      cout <<"\n9. Bardo";
      cout <<"\n10. Ladro";
      cout <<"\n11. Monaco";
	 cout <<"\nOpzione N°: ";
	 cin >> job;
	 //Controllo
	 while ( job < 1 && job > 11 ) {
		   		  cout <<"\nValore non valido! inserisci un numero presente 
nell'elenco: ";
				  cin >>job;
				  }
	  	  }
      /* TODO (#1#): Agg. scelta dell'allineamento */
	 //Punti abilità
      /* TODO (#3#): Trovare un sistema per controllare l'inserimento dei
                     punteggi caratteristica. */
      cout <<"\nOra inserisci i punteggi abilità del personaggio,";
      cout <<"\nsenza i modificatori di abilità.";
	 cout <<"\nForza: ";
      cin >> str;
      cout <<"\nDestrezza: ";
      cin >> dex;
      cout <<"\nCostituzione: ";
      cin >> con;
      cout <<"\nIntelligenza: ";
      cin >> in_;
      cout <<"\nSaggezza: ";
      cin >> wis;
      cout <<"\nCarisma: ";
      cin >> cha;
      //scrittura su file
      fwrite ( name, 35, 35, character );
      fwrite ( gender, 7, 7, character );
      fwrite ( race, 4, 1, character );
      fwrite ( job, 4, 1, character );
      fwrite ( str, 4, 1, character );
      fwrite ( dex, 4, 1, character );
      fwrite ( con, 4, 1, character );
      fwrite ( in_, 4, 1, character );
      fwrite ( wis, 4, 1, character );
      fwrite ( cha, 4, 1, character );
      fclose ( character );
      /* TODO (#2#): Dai la possibilità di inserire punteggi abilità. */
      /* DONE (#1#): Scrittura su file delle informazioni aquisite. */
}

       fwrite ( race, 4, 1, character );
'race' č un int, mentre fwrite() vuole un const void*.
Poi, non č molto sensato mescolare le funzioni di I/O del C++ (Iostream),
con quelle del C (fopen & co.). Usa le prime.
Max

 con quelle del C (fopen & co.). Usa le prime.
Grazie dell'aiuto, mi sa che stasera non andrò a letto molto presto!

 manuali ( tra c e c++ ) anche se un po vecchiotti ( 10-15 anni ? ) ...
Lascia stare i manuali vecchiotti. Lo Standard è del 1998. I testi scritti
prima di quell'anno non sono adatti per studiare il linguaggio da zero.
Scaricati Thinking in C++:
 
http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html
Leggiti le varie FAQ:
 
http://www.parashift.com/c++-faq-lite/
 
http://www.emagsoftware.it/faqcpp.htm
Max

 Max
Ho appena iniziato a leggere il manuale che mi hai consigliato, devo 
dire che è estremamente chiaro pur essendo in inglese, cosa abbastanza 
rara per gli altri che ho visto fino ad ora ...
Cmq ho risolto il problema e mi sto ancora mettendo le mani nei capelli 
per essermi scervellato su errore tanto stupido :(