elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda (DEV C++)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda (DEV C++)  (Leído 3,229 veces)
Kurosaki12

Desconectado Desconectado

Mensajes: 13



Ver Perfil
Ayuda (DEV C++)
« 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;
}


En línea

biribau

Desconectado Desconectado

Mensajes: 181


Ver Perfil
Re: Ayuda (DEV C++)
« Respuesta #1 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?


En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Ayuda (DEV C++)
« Respuesta #2 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.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Kurosaki12

Desconectado Desconectado

Mensajes: 13



Ver Perfil
Re: Ayuda (DEV C++)
« Respuesta #3 en: 4 Mayo 2010, 21:15 pm »

Gracias :o :o :o :o :o
En línea

Kurosaki12

Desconectado Desconectado

Mensajes: 13



Ver Perfil
Re: Ayuda (DEV C++)
« Respuesta #4 en: 4 Mayo 2010, 21:30 pm »

Como puedo hacerle para que al ingresar el nombre en el registro me permita ingresar espacios???????????
En línea

carlitos_jajajajaja

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: Ayuda (DEV C++)
« Respuesta #5 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
En línea

Merodeo los foros, esperando el momento de decir algo inteligente...

Se necesita paciencia
Kurosaki12

Desconectado Desconectado

Mensajes: 13



Ver Perfil
Re: Ayuda (DEV C++)
« Respuesta #6 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.
En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Ayuda (DEV C++)
« Respuesta #7 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
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines