Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - DeMoNcRaZy

#441
Buenas,

Estoy intentando sobre-escribir los datos de un archivo (para modificarlo) pero me salta error por que no está definido el archivo pero lo tengo encontrado, acá el código:

Me dice que el archivo no está declarado.


Código (cpp) [Seleccionar]
ifstream fe(datname);
if(fe.good()){
// Se muestra el contenido
while(!fe.eof())
       {
           char c = fe.get();
           str += c;
       
   if(c == '\n') {
               cout << str;
               str = "";
           }
       }
       
       cout << "\n?Que desea hacer?" << endl;
       cin >> hacerOpcion;
       
       if(hacerOpcion == "modificar"){
        cout << "Modificando archivo..." << endl;
       
        ifstream fe(datname);
       
        if(fe.good()){
        getline(cin, empresaDos);
        cout << "Empresa: ";
           getline(cin, empresaDos);

           cout << "Edad: ";
           cin >> edadDos;

           empresaDos = "Empresa: " + empresaDos;
           edadDos = "Edad: " + edadDos;

           cin.ignore(2, '\n');
           
           file.write(empresaDos.c_str(), empresaDos.size());
           file << endl;
           file << endl;
           file.write(edadDos.c_str(), edadDos.size());
           
           file.close();
        }
       }
       else{
        cout << "La opcion seleccionada no existe." << endl;
       }
}
else{
cout << "El archivo no ha sido encontrado." << endl;
}


Intento sustituir el texto predefinido por el nuevo, pero no encuentra el archivo aunque lo tenga definido ifstream fe(datname);

Si me pueden echar una ayudita lo agradecería.

Saludos.
#442
Gracias por la ayuda.

Solucionado.
#443
Cita de: Stakewinner00 en 15 Mayo 2015, 21:34 PM
puedes hacer

buscarNombre = "archivos/" + buscarNombre;
datname = buscarNombre.c_str();



un char* es un array de chars, el cual no tiene definido el operador de suma "+", por eso da error.


Gracias,

Ahora tengo una duda con verificar si el archivo existe o no, estoy probando con esto:

Código (cpp) [Seleccionar]
ifstream fe(datname);
if(fe.good()){
// Se muestra el contenido
}
else{
cout << "El archivo no ha sido encontrado." << endl;
}


Pero no da ningún resultado, y si lo modifico de distintas formas me salta el error.

A poder ser me gustaría que me explicaras por encima como funciona el código que me escribiste ayer al ayudarme:

Código (cpp) [Seleccionar]
ifstream fe(datname);
    while(!fe.eof())
    {
        char c = fe.get();
        str += c;
       
if(c == '\n') {
            cout << str;
            str = "";
        }
    }


Saludos.
#444
Gracias,

Ahora me gustaría saber como sobre-escribir la constante.

Tengo esto:

Código (cpp) [Seleccionar]
datname = "archivos/" + buscarNombre.c_str();

Pero me salta error, no me deja ejecutarlo.
#445
Buenas,

Tengo un problema al renombrar una variable char, acá el código:

Código (cpp) [Seleccionar]
string buscarNombre;

cout << "Introduce el nombre a buscar: ";
cin >> buscarNombre;

char *datname = "archivos/vid.txt";

*datname = buscarNombre;

ifstream fe(datname);



Y esta es la línea que me salta error:

Código (cpp) [Seleccionar]
*datname = buscarNombre;

He probado de varias maneras ya, pero no me deja renombrar a la variable o si no me salta error en el ifstream.

Si pueden echarme una mano lo agradecería.

Saludos.
#446
Cita de: Stakewinner00 en 14 Mayo 2015, 20:27 PM
el operador >> de ifstream omite los separadores, lo más sencillo es hacer algo tipo

Código (cpp) [Seleccionar]

string str;
while( !file.eof())
{
   char c = file.get();
   str += c;
   if(c == '\n') {
       std::cout << str;
   str = "";
   }
}


Gracias por la ayuda, ya lo voy entendiendo todo poco a poco.
#447
Gracias,

Ahora mi duda es la siguiente,

Leo el archivo y me aparece todo bien, pero no está bien ordenado.

Me aparece así:



Cuándo debería aparecerme así que es como la tengo guardada:




He probado saltos de líneas, endl, \n, pero se me salta cada palabra en vez de cada frase.

Gracias.
#448
Este es el resultado que me da:



Y este el código:

Código (cpp) [Seleccionar]
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main(){

string nombre;
string str;

cout << "Introduzca el nombre del archivo: ";
cin >> nombre;

cout << "Texto: ";
getline(cin, str);

nombre += ".txt";

ofstream file(nombre.c_str());

file << str << endl;

file.close();

cin.get();
return 0;
}
#449
Gracias, ya solucioné el problema.

Ahora tengo otro problemilla al leer un string con espacios.

Tengo esto:

Código (cpp) [Seleccionar]
        string nombre;
string texto;

cout << "Introduzca el nombre del archivo: ";
cin >> nombre;

cout << "Texto: ";
getline(cin, texto);

nombre += ".txt";

ofstream file(nombre.c_str());

file << texto << endl;

file.close();


La variable texto no puedo leerla con "cin" ya que se para en el primer espacio, estoy probando con getline, pero no se guarda el texto.

Gracias.
#450
Buenas,

Estoy probando a crear archivos de textos, guardando datos, etc..

Tengo este código:

Código (cpp) [Seleccionar]
#include <iostream>
#include <fstream>

using namespace std;

int main(){

string nombre;

cout << "Introduzca el nombre del archivo: ";
cin >> nombre;

if(nombre == "5"){
char cadena[128];
   // Creamos un fichero de salida
   ofstream fs(nombre.".txt");
}
else{
cout << "Nombre no valido." << endl;
}


cin.get();
return 0;
}


Todo funciona bien.

Pero me salta un error acá:

Código (cpp) [Seleccionar]
ofstream fs(nombre.".txt");

Se que es por la variable "nombre.", pero estoy intentando buscar información y no doy con el resultado... y el if no se como ponerlo para que se ejecute si el campo no está en blanco u es un número.

Si me pudieran dar una ayudita u pista lo agradecería.

Un cordial saludo.