Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/05/2008, 19:05
RoDaVi
Invitado
 
Mensajes: n/a
Puntos:
Saber si "erase" inseta por si sola el "\0"

Hola a todos
Es mi primer post y voy a presentarme
Tengo 56 años y soy un apasionado en la programación, como emprenderán
por mi edad me es bastante difícil ir ya a la universidad por lo tanto lo qué
hago es leer tutorías y post en los foros para aprender a programar en C++,
lo único que les pido es que sean un poco mas tolerantes que si tuviera 20 años.-

2 preguntas
La primera es saber si al cortar el string con erase este me asegura que
pondrá al final de misma el "\0" o debe insertarlo manualmente...?
La segunda, sera posible y conveniente hacer una función con la
siguiente linea de código...?

Código:
if (cantidad > 30) 
{ 
    nombre.erase (30,cantidad); 
    cout << "Ingreso Maximo 30 caracteres (ingresados " << cantidad
    << ")" << endl; 
    cout << "'Nombre' sera grabado asi............:" << nombre << endl
    << endl; 
}
De ser así me pondrían hacer un pequeño ejemplo teniendo en cuenta
las 3 llamadas...? (no es que quiero qué me hagan el trabajo sin presentar
ningún avance, simplemente es porqué como autodidacta me cuesta un
poco hacer las primeras funciones.-

Les dejo parte del código que quiero hacer (Alta,Baja,Modificación de Clientes)

Código:
include <iostream> 
#include <cstring> 
#include <cstdlib> 

using namespace std; 

int main(int argc, char *argv[]) 

{ 
     string nombre,calle,ciudad; 
     int cantidad = 0; 

     cout << "Ingrese nombre(maximo 30 caracteres).:"; 
     getline(cin,nombre); 
     cantidad = nombre.length(); 
     if (cantidad > 30) 
     { 
          nombre.erase (30,cantidad); 
          cout << "Ingreso Maximo 30 caracteres (ingresados " << cantidad
          << ")" << endl; 
          cout << "'Nombre' sera grabado asi............:" << nombre << endl
          << endl; 
     } 
     cout << "Ingrese calle(maximo 20 caracteres).:"; 
     getline(cin,calle); 
     cantidad = calle.length(); 
     if (cantidad > 20) 
     { 
          calle.erase (20,cantidad); 
          cout << "Ingreso Maximo 20 caracteres (ingresados " << cantidad
          << ")" << endl; 
          cout << "'Calle' sera grabado asi............:" << calle << endl << endl; 
     } 

     cout << "Ingrese ciudad(maximo 20 caracteres).:"; 
     getline(cin,ciudad); 
     cantidad = ciudad.length(); 
     if (cantidad > 20) 
     { 
          ciudad.erase (20,cantidad); 
          cout << "Ingreso Maximo 20 caracteres (ingresados " << cantidad
          << ")" << endl; 
          cout << "'Ciudad' sera grabado asi............:" << ciudad << endl
         << endl; 
     } 

     cout << "" << endl; 
     cout << "Apriete <Enter> para cerrar la ventana..."; 
     cin.get(); 

     return EXIT_SUCCESS; 
}
Muchas gracias por el tiempo que cada uno desee dedicarle a este post.
Daniel

Última edición por RoDaVi; 01/05/2008 a las 19:17 Razón: Modificar la despedida