Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Kurosaki12 en 4 Mayo 2010, 20:44 pm



Título: Ayuda (DEV C++)
Publicado por: Kurosaki12 en 4 Mayo 2010, 20:44 pm
Alguien que me diga que esta mal con el siguiente programa no puedo ingresar el nombre en el registro.


#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main() {
   
    char nombre[5][50];
    int r, c, op;
   
    for (r=0; r<=4; r++)
    for (c=0; c<=49; c++)
         nombre[r][c]=' ';
   
    cout << "Registros disponibles: ";
   
    for (r=0; r<=4; r++)
    if(nombre[r][0]==' ')
    printf("%i ", r+1);
   
    if (nombre[0][0]!=' ' && nombre[1][0]!=' ' && nombre[2][0]!=' ' && nombre[3][0]!=' ' && nombre[4][0]!=' ' )
    printf("Ninguno");
    else
    cout << endl;
   
    printf("Que registro desea editar (1 - 5): ");
    scanf("%i", &op);
    switch (op){
           case 1:
                if (nombre[0][0]==' ')
                {printf("Teclea el nombre a ingresar: ");
                scanf("%[^\n]", nombre[0]);}
                else
                printf("Registro ya ocupado por: %s \n", nombre[0]);
                break;
           case 2:
                if (nombre[2][0]!=' ')
                printf("Registro ya ocupado por: %s \n", nombre[1]);
                else
                printf("Teclea el nombre a ingresar: "), scanf("%[^\n]", nombre[1]);
                break;
           case 3:
                if (nombre[3][0]!=' ')
                printf("Registro ya ocupado por: %s \n", nombre[2]);
                else
                printf("Teclea el nombre a ingresar: "), scanf("%[^\n]", nombre[2]);
                break;
           case 4:
                if (nombre[3][0]!=' ')
                printf("Registro ya ocupado por: %s \n", nombre[3]);
                else
                printf("Teclea el nombre a ingresar: "), scanf("%[^\n]", nombre[3]);
                break;
           case 5:
                if (nombre[4][0]!=' ')
                printf("Registro ya ocupado por: %s \n", nombre[4]);
                else
                printf("Teclea el nombre a ingresar: "), scanf("%[^\n]", nombre[4]);
                break;
           default: cout<< "Has ingresado un dato erroneo\n";
}
    cout << endl;
    cout << endl;
    system("pause");
    return 0;
}


Título: Re: Ayuda (DEV C++)
Publicado por: biribau en 4 Mayo 2010, 20:55 pm
Madre mía ese código está muy feo de leer, encima lo has pegado ahí a la brava.
Qué hace %[^\n]? en vez de usar %s?


Título: Re: Ayuda (DEV C++)
Publicado por: leogtz en 4 Mayo 2010, 20:57 pm
Lee cadenas con espacios.

Y sí, el código es horrible.

¿Es C o C++?

Ya se ha dicho que Dev-c++ es un IDE, no es un lenguaje de programación.


Título: Re: Ayuda (DEV C++)
Publicado por: Kurosaki12 en 4 Mayo 2010, 21:15 pm
Gracias :o :o :o :o :o


Título: Re: Ayuda (DEV C++)
Publicado por: Kurosaki12 en 4 Mayo 2010, 21:30 pm
Como puedo hacerle para que al ingresar el nombre en el registro me permita ingresar espacios???????????


Título: Re: Ayuda (DEV C++)
Publicado por: carlitos_jajajajaja en 4 Mayo 2010, 22:25 pm
usa la funcion fgets de stdio.h

algo asi como fgets(nombre[0], 49, stdin);


o el metodo cin.getline de la libreria iostream

cin.getline(nombre[0], 49);

Esa es la forma para obtener cadenas de caracteres de la entrada


Título: Re: Ayuda (DEV C++)
Publicado por: Kurosaki12 en 4 Mayo 2010, 22:52 pm
No me saleeeeeeeee  :-( :-( :-( :-( :-(

Ya intente eso del fgets y el cin.getline pero aun asi no sale.

alguien que me explique.


Título: Re: Ayuda (DEV C++)
Publicado por: Littlehorse en 4 Mayo 2010, 22:58 pm
Usa la etiqueta GesHI para poner código, y no hagas doble post.

Citar
alguien que me explique.

Usa el buscador, tienes infinidad de ejemplos!

Saludos