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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


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


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Duda con scanf
« en: 29 Septiembre 2012, 11:23 am »

En un ejemplo de un codigo en un libro que estoy leyendo, me he encontrado con esta linea:

Código
  1. scanf("%[^\n]", linea);

La parte que no entiendo es la de "%[\n]", creo que sirve para guardar la linea de texto introducida en el array linea, pero sin incluir el salto de linea, aunque no estoy del todo seguro, queria saber exactamente para que sirve eso exactamente.

Saludos


En línea

n0z

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Duda con scanf
« Respuesta #1 en: 29 Septiembre 2012, 12:02 pm »

Efectivamente sirve para leer una linea que introduzca el usuario, hasta que introduces un salto de linea.


En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Duda con scanf
« Respuesta #2 en: 29 Septiembre 2012, 12:24 pm »

En un ejemplo de un codigo en un libro que estoy leyendo, me he encontrado con esta linea:
Código
  1. scanf("%[^\n]", linea);
La parte que no entiendo es la de "%[\n]", creo que sirve para guardar la linea de texto introducida en el array linea,
Como te han comentado, "entra" todo en el scanf y a diferencia de éste que sólo entra hasta encontrar un espacio en blanco, o si introduces 123asd y el scanf tiene en su formato %d sólo coge el número, ahora la cadena linea puede contener espacios en blanco. Como ejemplo, y aprovechando el otro hilo de scanf sin fflush, puedes probar 123asd asd. Te dejo éste código:
Código
  1. #include <stdio.h>
  2. int main(){
  3. char linea [80];
  4. char ch1, ch2;
  5. scanf("%[^\n]%*c", linea);
  6. printf("Ingrese 1: ");
  7. scanf("%c%*c",&ch1);
  8. printf("Ingrese 2: ");
  9.        scanf("%c%*c",&ch2);
  10. printf("%c  %c   %s\n", ch1, ch2,linea);
  11. return 0;
  12. }
Te dejo esta referencia http://beej.us/guide/bgc/output/html/multipage/scanf.html
Saludos
En línea

Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Duda con scanf
« Respuesta #3 en: 29 Septiembre 2012, 13:01 pm »

Muchas gracias a los dos, en el libro que estoy leyendo viene perfectamente explicado todo sobre la entrada y salida de datos, pero no me habia fijado yo.

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Parametros de api printf y scanf
Programación Visual Basic
krackwar 2 6,916 Último mensaje 21 Julio 2008, 18:00 pm
por krackwar
Pregunta de C scanf
Programación C/C++
g0rg3d3l4s3lv4 3 2,736 Último mensaje 15 Marzo 2013, 04:21 am
por g0rg3d3l4s3lv4
scanf y gets « 1 2 »
Programación C/C++
m@o_614 16 8,397 Último mensaje 21 Julio 2013, 19:29 pm
por rir3760
problema scanf
Programación C/C++
pMV2ere 4 3,234 Último mensaje 1 Noviembre 2013, 08:44 am
por vangodp
Duda sobre scanf
Programación C/C++
UsuarioZ 2 2,309 Último mensaje 18 Noviembre 2019, 01:29 am
por ThunderCls
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines