C++: Principiante...

Messaggioda gilik » 08/04/2006, 13:43

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<iostream.h>
#include <stdlib.h>
#include<fstream.h>
#include <stdio.h>

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
gilik
Starting Member
Starting Member
 
Messaggio: 1 di 4
Iscritto il: 08/04/2006, 13:35

Messaggioda Kroldar » 08/04/2006, 13:53

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
Kroldar
Advanced Member
Advanced Member
 
Messaggio: 182 di 2110
Iscritto il: 11/11/2005, 16:23

Messaggioda lore » 08/04/2006, 14:09

Kroldar ha scritto: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.
There exists... an entire world which is the totality of mathematical truths... just as a world of physical reality exists, the one like the other independent of ourselves, both of divine creation. (C. Hermite)

Chiunque smetta di imparare è vecchio, che abbia 20 o 80 anni. (H. Ford)
lore
Senior Member
Senior Member
 
Messaggio: 104 di 1118
Iscritto il: 15/03/2006, 19:28

Messaggioda Kroldar » 08/04/2006, 15:41

vero lore non ci avevo fatto caso
Kroldar
Advanced Member
Advanced Member
 
Messaggio: 183 di 2110
Iscritto il: 11/11/2005, 16:23

Messaggioda gilik » 08/04/2006, 15:46

Grazie ragazzi per l'appunto...ho sistemato come mi avevate consigliato....ma cmq il programma non riesco a eseguirlo ...l'ho lasciato cosi...
#include<iostream.h>
#include <stdlib.h>
#include<fstream.h>
#include <stdio.h>

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
gilik
Starting Member
Starting Member
 
Messaggio: 2 di 4
Iscritto il: 08/04/2006, 13:35

Messaggioda lore » 08/04/2006, 16:26

2 domande:

-Che ambiente di sviluppo usi, se lo usi?
-Che errore ti dà?
There exists... an entire world which is the totality of mathematical truths... just as a world of physical reality exists, the one like the other independent of ourselves, both of divine creation. (C. Hermite)

Chiunque smetta di imparare è vecchio, che abbia 20 o 80 anni. (H. Ford)
lore
Senior Member
Senior Member
 
Messaggio: 113 di 1118
Iscritto il: 15/03/2006, 19:28

Messaggioda lorven » 08/04/2006, 16:31

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.
Un giorno senza sorriso è un giorno perso.
Charlie Chaplin
Avatar utente
lorven
Junior Member
Junior Member
 
Messaggio: 108 di 369
Iscritto il: 06/12/2005, 20:55

Messaggioda gilik » 08/04/2006, 16:41

Uso Dev-C ++ versione 4, quando compilo non mi viene nessun errore.... poi nell'esecuzione ..è cosi veloce k non si legge....
gilik
Starting Member
Starting Member
 
Messaggio: 3 di 4
Iscritto il: 08/04/2006, 13:35

Messaggioda lorven » 08/04/2006, 16:49

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.
Un giorno senza sorriso è un giorno perso.
Charlie Chaplin
Avatar utente
lorven
Junior Member
Junior Member
 
Messaggio: 109 di 369
Iscritto il: 06/12/2005, 20:55

Messaggioda gilik » 08/04/2006, 18:01

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

guardate....


#include<iostream.h>
#include <stdlib.h>
#include<fstream.h>
#include <stdio.h>

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
gilik
Starting Member
Starting Member
 
Messaggio: 4 di 4
Iscritto il: 08/04/2006, 13:35

Prossimo

Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite