Ayuda (DEV C++)

Iniciado por Kurosaki12, 4 Mayo 2010, 20:44 PM

0 Miembros y 1 Visitante están viendo este tema.

Kurosaki12

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;
}

biribau

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?

leogtz

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.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Kurosaki12


Kurosaki12

Como puedo hacerle para que al ingresar el nombre en el registro me permita ingresar espacios???????????

carlitos_jajajajaja

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
Merodeo los foros, esperando el momento de decir algo inteligente...

Se necesita paciencia

Kurosaki12

No me saleeeeeeeee  :-( :-( :-( :-( :-(

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

alguien que me explique.

Littlehorse

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
An expert is a man who has made all the mistakes which can be made, in a very narrow field.