Título: Ayuda con un programa(DEV C++) Publicado por: Kurosaki12 en 4 Mayo 2010, 22:09 pm Nesecito que alguien me ayude con este programa, no se como hacer para que al ingresar el nombre al registro me acepte espacios.
porfavor alguien que me ayude. gracias #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; int main() { char nombre[5][50]; int r, c, op; char opc; 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; do{ 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("%s", 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("%s", 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("%s", 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("%s", 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("%s", nombre[4]); break; default: cout<< "Has ingresado un dato erroneo\n"; } cout << endl << "Deceas ingresar otro registro (S=Si,N=No):", cin >> opc; } while(opc=='S' || opc=='s'); cout << endl; cout << endl; cout << opc; system("pause"); return 0; } Título: Re: Ayuda con un programa(DEV C++) Publicado por: Akai en 4 Mayo 2010, 22:18 pm No hace falta que lo vuelvas a repetir en otro post si ya lo pusiste.
En vez de scanf, utiliza otra funcion, ya que scanf a la hora de recoger strings sólo lo hace hasta el primer espacio. gets creo que sería, pero tenía sus defectos. Título: Re: Ayuda con un programa(DEV C++) Publicado por: Kurosaki12 en 4 Mayo 2010, 22:20 pm ya intente usar gets pero me marca error en el programa
Título: Re: Ayuda con un programa(DEV C++) Publicado por: bizco en 5 Mayo 2010, 00:17 am Citar ya que scanf a la hora de recoger strings sólo lo hace hasta el primer espacio %[^\n] ahi le lee toda la linea. Título: Re: Ayuda con un programa(DEV C++) Publicado por: Belial & Grimoire en 5 Mayo 2010, 01:39 am utiliza fgets
fgets(op, sizeof(op), stdin); y pon opt como char Título: Re: Ayuda con un programa(DEV C++) Publicado por: Kurosaki12 en 5 Mayo 2010, 17:51 pm Si pongo automaticamente la opcion (op) en 1 (o en cualquier otro) si me permite ingresar caracteres con espacios ("%[^\n]"), en pocas palabras al hacer la pregunta de cual registro se desea modificar es cuando surgen los problemas. Pero no lo he resuelto ¿como plantear la pregunta adecuadamente?. Código
Título: Re: Ayuda con un programa(DEV C++) Publicado por: Horricreu en 5 Mayo 2010, 18:01 pm scanf() (http://www.cplusplus.com/reference/clibrary/cstdio/scanf/):
Citar scanf type specifiers: Type: s Qualifying input: string of characters. This will read subsequent characters until a whitespace is found (whitespace characters are considered to be blank, newline and tab). Type of argument: char * En resumen, utiliza %s. Saludos :P |