UTNianos

Versión completa: [AYUDA] Ejercicio de INFO II
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Segun el siguiente código. ¿Que hace el programa?

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main (int argc, char ** argv)
{
//system("clear");
char micadena[80];
char c;
char nombre[20];
printf ("Ingrese un texto termina con Enter \n");
gets(micadena);
printf("\n\nLa cadena ingresada es: %s \n\n\n",micadena);

//ahora con getchar


printf( "Escribe tu nombre: " );
scanf( "%[A-Z]s", nombre );

printf( "Lo que recogemos de scanf es: %s\n", nombre );
printf( "Lo que había quedado en el buffer: " );
while( (c = getchar())!= '\n' )
putchar( c );

return (0);
}



AYUDAAAAAAAAA , Y GRACIAS =)
Che guada, no se te ocurrió leer acerca del lenguaje y ver de qué se trata el ejercicio? Me parece que justamente la idea es que te empieces a interiorizar mínimamente con stdio y string, no hay nada que no puedas resolver por tu cuenta si te ponés a investigarlo. Y si así lo fuera, traenos una pregunta más puntual, así podemos responderte sin quedarnos con la sensación de que, lejos de ayudarte a entender y a que aprendas, lo que hicimos fue hacerte la tarea =)

Saludos
Aye

Off-topic:
¿Cómo pasaste info 1?
Haber... pedi ayuda de onda.. sino no pueden mejor no comenten. Gracias.

int main (int argc, char ** argv)
{

char micadena[80];
char c;
char nombre[20];

/*Aca ingresas un string por teclado y lo guardas con gets en la variable micadena*/
/*Luego de guardarla....con printf la mostras en pantalla*/

printf ("Ingrese un texto termina con Enter \n");
gets(micadena);
printf("\n\nLa cadena ingresada es: %s \n\n\n",micadena);

/*Haces lo mismo que antes...ingresas un string por teclado y lo guardas en la variable nombre con scanf*/
/*Con el [A-Z] limitas a que scanf tome las letras que estan en mayuscula*/
/*scanf va a tomar caracter por caracter de lo que ingresaste hasta que se tope con una minuscula*/

printf( "Escribe tu nombre: " );
scanf( "%[A-Z]s", nombre );

/*Mostras lo que se guardo anteriormente en nombre*/
printf( "Lo que recogemos de scanf es: %s\n", nombre );

/*Cuando vos apretas enter luego de escribir lo que queres guardar con scanf, la funcion toma de stdin todo el string para guardarlo en tu variable. Ahora, en la linea anterior, como vos restringiste lo que la funcion va a tomar, en el caso de que escribas mitad de palabra en mayuscula y la otra mitad en minuscula, scanf solo guarda la parte en mayuscula en tu variable y deja el resto en el buffer, asi que con ese while y la funcion getchar, levantas caracter por caracter que haya quedado en el buffer (guardandolo en la variable c) y lo imprimis con la funcion putchar*/

printf( "Lo que había quedado en el buffer: " );
while( (c = getchar())!= '\n' )
putchar( c );

return (0);
}


No se si fui muy claro...igual...son ejercicios para arrancar en C guadafr ... te diría que te sientes a leer y practicar un poco mas, que en uno o dos días podes sacarlo sola.
(25-04-2014 22:51)leibniz escribió: [ -> ]
Off-topic:
¿Cómo pasaste info 1?


Off-topic:
No creo que sea de frba, las otras regionales tienen algunos planes bastante raros...
(26-04-2014 02:11)guadafr escribió: [ -> ]Haber... pedi ayuda de onda.. sino no pueden mejor no comenten. Gracias.

Por algo puse el off-topic che, no te henojes.
(26-04-2014 02:32)Santi Aguito escribió: [ -> ]

int main (int argc, char ** argv)
{

char micadena[80];
char c;
char nombre[20];

/*Aca ingresas un string por teclado y lo guardas con gets en la variable micadena*/
/*Luego de guardarla....con printf la mostras en pantalla*/

printf ("Ingrese un texto termina con Enter \n");
gets(micadena);
printf("\n\nLa cadena ingresada es: %s \n\n\n",micadena);

/*Haces lo mismo que antes...ingresas un string por teclado y lo guardas en la variable nombre con scanf*/
/*Con el [A-Z] limitas a que scanf tome las letras que estan en mayuscula*/
/*scanf va a tomar caracter por caracter de lo que ingresaste hasta que se tope con una minuscula*/

printf( "Escribe tu nombre: " );
scanf( "%[A-Z]s", nombre );

/*Mostras lo que se guardo anteriormente en nombre*/
printf( "Lo que recogemos de scanf es: %s\n", nombre );

/*Cuando vos apretas enter luego de escribir lo que queres guardar con scanf, la funcion toma de stdin todo el string para guardarlo en tu variable. Ahora, en la linea anterior, como vos restringiste lo que la funcion va a tomar, en el caso de que escribas mitad de palabra en mayuscula y la otra mitad en minuscula, scanf solo guarda la parte en mayuscula en tu variable y deja el resto en el buffer, asi que con ese while y la funcion getchar, levantas caracter por caracter que haya quedado en el buffer (guardandolo en la variable c) y lo imprimis con la funcion putchar*/

printf( "Lo que había quedado en el buffer: " );
while( (c = getchar())!= '\n' )
putchar( c );

return (0);
}


No se si fui muy claro...igual...son ejercicios para arrancar en C guadafr ... te diría que te sientes a leer y practicar un poco mas, que en uno o dos días podes sacarlo sola.



MUCHAS GRACIAS Santi!...



Y no, no soy de Bs As.
URLs de referencia