Hola que tal soy nuevo en el foro me gustaria presentarme.
Me llamo Lucas y hace rato que me gusta la programación y decidí meterme un toke mas en esto. Tengo 18 años y soy de argentina.
Ahora les dejo mi problemita
estoy haciendo un trabajito(mas abajo dejo el codigo) El tema es que cuando uso "cin.getline(elnombredelavariable,xxxx);" me dice que no pudo abrir el archivo. osea el tema va asi el usuario debe poder ingresarle el nombre al archivo y con cin.getline(); no me funciona (en ciertos casos como el que les voy a psar ahora), estuve viendo que podria llegar a causar el problema y llegue a que en la función menu cuando le coloco al switch una variable cuyo valor debe ser ingresada para el usuario me salta el problema. si le saco eso el codigo funciona de 10.
Alguno me podria ayudar?
Agradezco mucho su ayuda
Saludos
mi mail:
[email protected]
Código:
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
int crear_nuevo_mensaje();
int menu();
int main()
{
menu();
system ("pause");
}
int menu(){
int e;
cin >> e;
switch (e){
case 1:
crear_nuevo_mensaje();
break;
}
return 0;
}
int crear_nuevo_mensaje(){
char nombreArchivo[250]; //contendra el nombre del archivo
char buffer[588]; //contendra el contenido del usuario
char asunto[250];
//solicitamos el nombre de archivo
cout << "Nombre del archivo: ";
cin.get (nombreArchivo, 250);
//eliminamos el caracter de nueva linea despues de introducir el nombre del archivo
//si no lo eliminamos, getline, recoge del buffer el salto de linea, y es como si
// hubieramos pulsado intro sin introducir ningun caracter.
cin.ignore(1,'\n');
//abrimos el archivo para escritura.
//Si el archivo ya existe, su contenido se elimina
ofstream fout(nombreArchivo);
//si no se puede abrir...
if(fout.fail())
{
cout << "No se puede abrir el archivo " << nombreArchivo << endl;
return 1;
}
fout << "Esta linea se escribe directamente en el archivo\n";
//solicitamos texto al usuario para añadirlo en el archivo
cout << "Escribe el texto para añadirlo en el archivo: ";
//recogemos un máximo de 254 caracteres. El ultimo sera el final de linea '\0'
cin.getline(buffer,588);
//guardamos la información introducida en el archivo
fout << buffer << "\n";
//cerramos
fout.close();
//mostramos el contenido del archivo
//abrimos el archivo para lectura
ifstream fin(nombreArchivo);
//comprobamos si se ha abierto correctamente
if(fin.good())
{
char ch;
cout << "\n***** contenido del archivo *****\n";
//vamos leyendo caracter a caracter y lo vamos mostrando.
while (fin.get(ch))
cout << ch;
cout << "\n***** fin contenido del archivo *****\n";
//cerramos
fin.close();
}
return 0;
}