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;
}
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?
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.
Gracias :o :o :o :o :o
Como puedo hacerle para que al ingresar el nombre en el registro me permita ingresar espacios???????????
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
No me saleeeeeeeee :-( :-( :-( :-( :-(
Ya intente eso del fgets y el cin.getline pero aun asi no sale.
alguien que me explique.
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