C++: Principiante...

gilik
Ciao ragazzi, vi scrivo perche ho un problema con un mio programma , non riesco ad eseguirlo...l'ho gia compilato e nn c'è nessun errore... non lo so...guardatelo qui (è in spagnolo.... :) )

#include
#include
#include
#include

void main()
{
// Declaracion de la funcion
int par(int numero);

//Declaracion de la variable
int n,resultado=0;
cout << "Programa que verifica si es par";
ifstream f_entrada;
ofstream f_salida;
f_entrada.open("leer.txt",ios::in);

if(f_entrada.fail())
cerr << "Error al abrir el archivo leer.txt" << endl;
else
while(!f_entrada.eof())
{
f_entrada >> n;
resultado= par(n);
if (resultado == 1)
{
f_salida.open("pares.txt");
f_salida << n ;
cout << "Numero par almacenado..\n" << endl;
f_salida.close();
}


f_entrada.close();
system ("PAUSE");
}// fin while
}

int par (int numero)
{
if (numero%2==0)
{
cout << "El numero es par\n";
return 1;
}
else
{
cout << "El numero es impar\n";
return 0;
}
}


Grazie di tutt

Risposte
Kroldar
ho visto qua e là che ci sono istruzioni come "return 0" o "return 1"... la tua funzione main deve essere una "int" e non una "void" perché le funzioni void non possono restituire niente

freddofede
"Kroldar":
ho visto qua e là che ci sono istruzioni come "return 0" o "return 1"... la tua funzione main deve essere una "int" e non una "void" perché le funzioni void non possono restituire niente


I "return" sono abbinati alla funzione "par", non alla main. Comunque è strano che non ti abbia dato errori in compile-time, dato che manca una parentesi graffa che chiude la funzione "par" e che main deve ritornare un tipo int e non void.

Kroldar
vero lore non ci avevo fatto caso

gilik
Grazie ragazzi per l'appunto...ho sistemato come mi avevate consigliato....ma cmq il programma non riesco a eseguirlo ...l'ho lasciato cosi...
#include
#include
#include
#include

int main()
{
// Declaracion de la funcion
int par(int numero);

//Declaracion de la variable
int n,resultado=0;
cout << "Programa que verifica si es par";
ifstream f_entrada;
ofstream f_salida;
f_entrada.open("leer.txt",ios::in);

if(f_entrada.fail())
cerr << "Error al abrir el archivo leer.txt" << endl;
else
while(!f_entrada.eof())
{

f_entrada >> n;
resultado= par(n);
if (resultado == 1)
{
f_salida.open("pares.txt");
f_salida << n ;
cout << "Numero par almacenado..\n" << endl;
f_salida.close();
}

f_entrada.close();
system ("PAUSE");
}// fin while
return 0;
}
// fin programa

int par (int numero)
{
if (numero%2==0)
{
cout << "El numero es par\n";
return 1;
}
else
{
cout << "El numero es impar\n";
return 0;
}
}// fin funcion par

....grazie ancora per l'aiuto

freddofede
2 domande:

-Che ambiente di sviluppo usi, se lo usi?
-Che errore ti dà?

lorven
Probabilmente non viene rilevato il file leer.txt, per cui viene emesso il messaggio di errore, ma non si ha il tempo di leggerlo, mancando un'istruzione per "fermare" l'output.

gilik
Uso Dev-C ++ versione 4, quando compilo non mi viene nessun errore.... poi nell'esecuzione ..è cosi veloce k non si legge....

lorven
Prova ad inserire questo

if(f_entrada.fail()) {
cerr << "Error al abrir el archivo leer.txt" << endl;
getchar();}

al posto di

if(f_entrada.fail())
cerr << "Error al abrir el archivo leer.txt" << endl;

per poter leggere l'eventuale errore di file non trovato che presumo venga emesso.

gilik
Ok ragazzi ci siamo...grazie per il vostro aiuto , siete stati grandi ...ho cambiato certe cose....

guardate....


#include
#include
#include
#include

int main()
{
//Declaracion de la variable
int n;
ifstream f_entrada;
ofstream f_salida;

f_entrada.open("a:\\valor.txt");// Abro file de lectura

if(!f_entrada)
{
cerr << "\nError al abrir el archivo leer.txt" << endl;
getchar();
}

cout << " PROGRAMA DE NUMEROS PARES E IMPARES CON EL USO DE ARCHIVOS\n";

do
{
f_entrada >> n;

if (n%2 == 0) // Determino si es par
{
f_salida.open("pares.txt"); // Abro el file de escritura para num.pares
f_salida << n ;
cout << "\nEl numero " << n <<" es par y esta siendo almacenado..\n";
f_salida.close(); // Cierro el file de escritura
}

if (n%2 == 1) // Determino si es impar
{
cout << "\nEl numero " << n << " es impar..\n";
}

}
while(!f_entrada.eof()); //ciclo que se ejecuta hasta el fin del file de lectura

f_entrada.close(); // cierro el file de lectura

system ("PAUSE");
return 0;
}

Alla fine è un programma semplice ... io sto imparando da poco...devo consegnare qst domani...
ciao..e grazie ancora

lorven
:-)
Il problema derivava dall'assenza del file o da cos'altro?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.