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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Guardar entrada estandar en un archivo de texto
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Guardar entrada estandar en un archivo de texto  (Leído 4,550 veces)
gonzaloi

Desconectado Desconectado

Mensajes: 27


Ver Perfil
Guardar entrada estandar en un archivo de texto
« en: 2 Abril 2011, 23:16 pm »

Hola gente !! A ver si alguien me puede ayudar a guardar unos datos que viene desde entrada estandar (tiene saltos de linea) y los quiero guardar tal como viene en un archivo de texto.

Se me ocurrio lo siguiente:

FILE* archivo= fopen("prueba.txt", "wt");
char* entrada;
gets(entrada);
fprintf(archivo, entrada);

Si por ejemplo escribo desde teclado:
Hola
me
llamo
asi

Solo me guarda "Hola". Acaso el printf escribe hasta encontrar un salto de linea ??

Si es asi, que me aconsejan ?????

Desde ya muchas gracias !!


En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Guardar entrada estandar en un archivo de texto
« Respuesta #1 en: 2 Abril 2011, 23:24 pm »

No, tu problema es que gets si finaliza con el final de linea:

http://cplusplus.com/reference/clibrary/cstdio/gets/

Por otro lado, imagino que el código que has puesto es un mero ejemplo y realmente no estás usando eso... Porque si es el caso,, tienes un problema con el tamaño de "entrada".


En línea

gonzaloi

Desconectado Desconectado

Mensajes: 27


Ver Perfil
Re: Guardar entrada estandar en un archivo de texto
« Respuesta #2 en: 2 Abril 2011, 23:37 pm »

Si es verdad, esta mal puesto, seria char entrada[MAX];

Bueno, voy a ver que hago :S.

Gracias por la ayuda !!
En línea

gonzaloi

Desconectado Desconectado

Mensajes: 27


Ver Perfil
Re: Guardar entrada estandar en un archivo de texto
« Respuesta #3 en: 2 Abril 2011, 23:44 pm »

Es posible guardar en una variable una entrada estandar que tenga saltos de lineas ??? O tendria que ir leyendo linea por linea ??
En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Guardar entrada estandar en un archivo de texto
« Respuesta #4 en: 2 Abril 2011, 23:48 pm »

Leer linea por linea es la opción más asequible. Para lo otro deberías recurrir si usases C++ al método getline que te permite modificar el carácter que finalzia la linea, cambiando \n por \0.

Por otro lado, no es aconsejable que lo intentes todo de golpe, ya que una de dos, vas a necesitar un buffer enorme por si acaso, o puedes terminar desbordando el buffer si no vas con cuidado.

Como ya dije, hacerlo linea por linea es la opción más sencilla.
En línea

gonzaloi

Desconectado Desconectado

Mensajes: 27


Ver Perfil
Re: Guardar entrada estandar en un archivo de texto
« Respuesta #5 en: 2 Abril 2011, 23:57 pm »

Si tenes razon, pero es para un ejercicio muy simple. Asique no hay problema con el buffer

Lo que me interesa es saber si hay forma de guardar la entrada con saltos de linea en una variable ???

Estoy laburando con C
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Guardar entrada estandar en un archivo de texto
« Respuesta #6 en: 3 Abril 2011, 00:04 am »

Puedes intentar con algo como esto:

Código
  1. #include <stdio.h>
  2. int main(void)
  3. {
  4.    unsigned int i = 0;
  5.    char c;
  6.    char string[100];
  7.    while((c = getchar()) != EOF)
  8.    string[i++] = c;
  9.    string[i] = '\0';
  10.    printf("\n\nString : [%s]\n", string);
  11.    return 0;
  12. }
  13.  

Teniendo ya la string, solo la volcas al archivo de texto y ya.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
gonzaloi

Desconectado Desconectado

Mensajes: 27


Ver Perfil
Re: Guardar entrada estandar en un archivo de texto
« Respuesta #7 en: 3 Abril 2011, 00:16 am »

Gracias !! Esta buena tu idea !! Por lo visto no existe una funcion que haga el laburo solita.

Saludos !!
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Guardar entrada estandar en un archivo de texto
« Respuesta #8 en: 3 Abril 2011, 00:23 am »

Creo que no, pero igual puedes hacer el trabajo con lo que te dejé abajo.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines