Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda ofstream C++

Estas en el tema de Ayuda ofstream C++ en el foro de C/C++ en Foros del Web. Hola, estoy haciendo un programa pero no me compila, me marca un error: declaration of 'std::ofstream guardar' shadows a parameter no se si se pueden ...
  #1 (permalink)  
Antiguo 26/11/2008, 09:55
 
Fecha de Ingreso: noviembre-2008
Mensajes: 2
Antigüedad: 15 años, 5 meses
Puntos: 0
Pregunta Ayuda ofstream C++

Hola, estoy haciendo un programa pero no me compila, me marca un error:
declaration of 'std::ofstream guardar' shadows a parameter

no se si se pueden poner ofstream's en funciones void.

Acá va la el programa:

#include<iostream>
#include<ctime>
#include<fstream>
using namespace std;

void creamat(int[10][10]);
void muestramat(int[10][10]);
void guardamat(int[10][10]);

int main()
{

int mat[10][10];

creamat(mat);
muestramat(mat);
guardamat(mat);

system("PAUSE");

return 0;
}
void creamat(int matriz[10][10])
{
int i, j;

srand(time(NULL));

for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
matriz[i][j]=0+rand()%(10+1-0);
}
}
return;
}
void muestramat(int matriz[10][10])
{
int i, j;

for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
cout<<matriz[i][j];
}
cout<<endl;
}
return;
}
void guardamat (int matriz[10][10], ofstream& guardar)
{
int i, j;
ofstream guardar;//aca marca el error
char nombre[25];

cout<<"Ingrese un nombre para el archivo donde guardará la matriz: ";
cin.getline(nombre,25,'\n');
guardar.open(nombre);


for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
guardar<<matriz[i][j];
}
guardar<<endl;
}
return;
}


desde ya muchas gracias! saludos!
  #2 (permalink)  
Antiguo 26/11/2008, 14:04
Avatar de Fayca  
Fecha de Ingreso: abril-2008
Mensajes: 164
Antigüedad: 16 años
Puntos: 2
Respuesta: Ayuda ofstream C++

el error que te lanza el compilador li dise TODO
declaration of 'std::ofstream guardar' shadows a parameter : declaracion de std::ofstream guardar oscurese un parametro,
buelbes a declarar la variable dentro de la funcion cuando ya la tienes en los parametros, ytambien esta mal puesto el prototipo y la declaracion de la funcion, tienes de prototipo:void guardamat(int[10][10]);
y la decalaración es esta
void guardamat (int matriz[10][10], ofstream& guardar)
como bes al prototipo le falta el parametro ofstream&
deberia de quedar asi:
Código:
#include<iostream>
#include <stdlib.h>
#include<ctime>
#include<fstream>
using namespace std;

void creamat(int[10][10]);
void muestramat(int[10][10]);
void guardamat(int[10][10], ofstream&);

int main()
{
    ofstream guardar;

    int mat[10][10];

    creamat(mat);
    muestramat(mat);
    guardamat(mat, guardar);

    system("PAUSE");

    return 0;
}
void creamat(int matriz[10][10])
{
    int i, j;

    srand(time(NULL));

    for (i=0;i<10;i++)
    {
        for (j=0;j<10;j++)
        {
            matriz[i][j]=0+rand()%(10+1-0);
        }
    }
    return;
}
void muestramat(int matriz[10][10])
{
    int i, j;

    for (i=0;i<10;i++)
    {
        for (j=0;j<10;j++)
        {
            cout<<matriz[i][j];
        }
        cout<<endl;
    }
    return;
}
void guardamat (int matriz[10][10], ofstream& guardar)
{
    int i, j;
    //ofstream guardar;//aca marca el error
    char nombre[25];

    cout<<"Ingrese un nombre para el archivo donde guardará la matriz: ";
    cin.getline(nombre,25,'\n');
    guardar.open(nombre);


    for (i=0;i<10;i++)
    {
        for (j=0;j<10;j++)
        {
            guardar<<matriz[i][j];
        }
        guardar<<endl;
    }
    return;
}
  #3 (permalink)  
Antiguo 26/11/2008, 18:19
 
Fecha de Ingreso: noviembre-2008
Mensajes: 2
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Ayuda ofstream C++

muchas gracias Fayca!

agradezco tu respuesta!
saludos

césar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:13.