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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C] Problema - Captar espacios
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C] Problema - Captar espacios  (Leído 2,856 veces)
Caballo_Alado

Desconectado Desconectado

Mensajes: 42



Ver Perfil
[C] Problema - Captar espacios
« en: 7 Marzo 2012, 20:01 pm »

Hola amigos, buenas tardes a todos  ;)

Ando algo confundido con este ejercicio, estoy aprendiendo C del libro de aprenda C en 21 días y trato de hacer todos los ejercicios sin saltear los, la cuestión es que el ejercicio pide

-que escriba un programa que abra un archivo y lo imprima en la impresona. El programa debe imprimir solamente 55 líneas por página.

El problema es que solo debe imprimir 55 lineas por pagina, la cuestión es que no se como podría captar los enters, y por ej como se el maximo de la pantalla, porque por ej el maximo de caracteres desplegados en la pantalla en el símbolo de sistema es 80, sin embargo creo que en notepad es otra dimención, y en word igual.

el codigo que voy haciendo es...


Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6.  
  7.  
  8.  FILE *fp;
  9.  char i[4400];
  10.  int  b=0,c=0;
  11.  
  12.  if((fp=fopen("cosa.txt","rb"))==0)
  13.  
  14.  {              fprintf(stderr,"Error al tratar de abrir el archivo");
  15.                                    }
  16.  else
  17.  {
  18.                 for (;b<=4400;b++)
  19.  
  20.                 {
  21.                 fscanf(fp,"%c",&i[c]);
  22.                 c+=1;
  23.                 }
  24.  
  25.      }
  26.  fclose(fp);
  27.  printf("%s",i);
  28.  printf("\n");
  29.  
  30.  
  31.  /*
  32.  
  33.  
  34.   char prueba1[100];
  35.   int count=0;
  36.  
  37.   scanf("%85s",&prueba1);
  38.  
  39.   for (count=0;prueba1[count]!='\0';count++)
  40.   {
  41.      
  42.       }
  43.      
  44.       printf("El total de caracteres que esta cadena posee es de...%d\n",count);
  45.       printf("texto desplegado... %s\n",prueba1);*/
  46.  
  47.      system("PAUSE");
  48.  return 0;
  49.  
  50. }


aclaro que uso

Código
  1. printf("%s",i);

porque para testearlo todo el tiempo con la impresora se me hace bastante tedioso.

otra cosa que me gustaría averiguar es porque me sucede a mi lo de la linea

 
Código
  1. if((fp=fopen("cosa.txt","rb"))==0)
  2.  
  3.  {              fprintf(stderr,"Error al tratar de abrir el archivo");
  4.                                    }

según leí yo, si el resultado daba 0, es porque todo salio correctamente, (a lo mejor estoy equivocado) pero había leído eso, lo que llego a suponer es que como 0 representa false debe ser que si no se ejecuta, yo lo escribí de esa forma porque fue la que me dio resultados, cuando ponía el error en el else me daba al re vez. 

Hago que i[4400] nomas por testeo también , ya que 80*55=4400

La parte de abajo que esta como comentario también la uso para testear...




La verdad es que llevo ya unas horas pensando como puede ser, a lo mejor es super simple y ni me di cuenta pero si me ayudarían sería genial.

El ejercicio se encuentra en la pagina 474, Día 16, ejercicio 4 y no dan la respuesta.

Desde ya muchas gracias  ;-)

saludos!!


En línea

♫           ♪ "I'm sexy and I know it"     ♪      ♫
nirvguy

Desconectado Desconectado

Mensajes: 23



Ver Perfil
Re: [C] Problema - Captar espacios
« Respuesta #1 en: 7 Marzo 2012, 21:28 pm »

Para captar los enter tienes que ver si el caracter que escaneaste es 13 ya que es el caracter que representa el retorno de carro y para saber la cantidad de lineas de la impresora tendrias que hacerlo, creo que con API's del sist op para el cual lo quieres hacer, no se si ya lo viste. Si los viste mirá http://msdn.microsoft.com/en-us/library/windows/desktop/dd183565%28v=vs.85%29.aspx para windows. Para linux no tengo idea.
Espero que te haya ayudado. Saludos


En línea

Todas mis letras han sido pedazos de poesía y los pedazos de poesía se toman de poemas que comúnmente no tienen sentido
en primer termino.
               Kurt Cobain
Caballo_Alado

Desconectado Desconectado

Mensajes: 42



Ver Perfil
Re: [C] Problema - Captar espacios
« Respuesta #2 en: 8 Marzo 2012, 03:12 am »

Para captar los enter tienes que ver si el caracter que escaneaste es 13 ya que es el caracter que representa el retorno de carro y para saber la cantidad de lineas de la impresora tendrias que hacerlo, creo que con API's del sist op para el cual lo quieres hacer, no se si ya lo viste. Si los viste mirá http://msdn.microsoft.com/en-us/library/windows/desktop/dd183565%28v=vs.85%29.aspx para windows. Para linux no tengo idea.
Espero que te haya ayudado. Saludos

 ;-) ;-) ;-) ;-) muchas gracias! intentare ahora a ver que tal...

saludos!
En línea

♫           ♪ "I'm sexy and I know it"     ♪      ♫
satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: [C] Problema - Captar espacios
« Respuesta #3 en: 8 Marzo 2012, 13:48 pm »

Hola

Puedes usar fgets que sí lee los saltos de línea

Saludos
En línea

Breakbeat como forma de vida
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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