C/Visual C - Error con scanf y arreglos

 
Vista:
sin imagen de perfil
Val: 185
Bronce
Ha aumentado 1 puesto en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Error con scanf y arreglos

Publicado por carlos (95 intervenciones) el 27/09/2018 17:51:38
Estuve mirando que se me perdieron mis apuntes y ejercicios pasados, para recordar cosas (que se olvidan funciones basicas y demas) me puse a hacer algunas y me encontre con uno que no hice correctamente pero lo intento y sigo sin hacerlo funcionar el problema es la comparacion he probado con strcmp comparando con '\n' con "\n" pero nada no lo compara

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/*Ejercicio 5.4.2 Un programa que prepare espacio para un máximo de 100 nombres
(de un maximo de 80 letras cada uno).El usuario deberá ir introduciendo un
nombre cada vez, hasta que se pulse Intro sin teclear nada, momento en el que
se dejaran de pedirse más nombres y se mostrara en pantalla la lista de los
nombres que se han introducido hasta entonces*/
 
#include<stdio.h>
#include<string.h>
 
int main(){
char nombres[100][80]={};
char nombre[80];
int valor=0;
int x=0;
while((x<100)&&(valor!=1)){
	if(nombre=='\n'){
	valor==1;
}
	printf("Introduzca nombre num");
	printf("%d\n",x);
gets(nombre);
printf("%s",nombre);
strcpy(nombres[x],nombre);
 
x++;
}
x=0;
getchar();
printf("pulsa intro para ver la lista de los nombres introducidos");
getchar();
	while(x<100){
		printf("%s\n",&nombres[x]);
		x++;
	}
	return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de abZer0x
Val: 23
Ha aumentado su posición en 2 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Error con scanf y arreglos

Publicado por abZer0x (4 intervenciones) el 27/09/2018 23:55:11
Hola carlos, hice algunas modificaciones en tu programa. Fíjate que uso fgets para leer de la entrada estandar en lugar de usar gets y uso la función strcmp para comparar si lo ingresado es distinto de \n.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <string.h>
 
#define CANTIDAD_NOMBRES 5
 
int main()
{
    char nombres[CANTIDAD_NOMBRES][80] = {};
    char nombre[80];
    int x = 0;
    while (x < CANTIDAD_NOMBRES)
    {
        printf("Introduzca nombre %d: ", x);
        fgets(nombre, 80, stdin);
        if (strcmp(nombre, "\n") != 0)
            strcpy(&nombres[x][80], nombre);
        else
            break;
        x++;
    }
    x = 0;
    printf("pulsa intro para ver la lista de los nombres introducidos");
    getchar();
    while (x < CANTIDAD_NOMBRES)
    {
        printf("%s\n", &nombres[x][80]);
        x++;
    }
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 185
Bronce
Ha aumentado 1 puesto en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Error con scanf y arreglos

Publicado por carlos (95 intervenciones) el 28/09/2018 01:04:29
la cosa es que no puedo usar fgets porque en la leccion no se ha dado o sea que se tiene que poder de alguna forma sin usar un define ni fgets, ni tampoco goto que es el que use para resolverlo

Ya la he solucionado la he encontrado por ahi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar