
Ayuda con contadores
Publicado por Diego (150 intervenciones) el 16/04/2014 20:03:36
Buenas tardes, tengo un problema cuando trto de contar los caracteres ingresado y las lineas. El problrma dice lo siguiente:
4) Escriba un programa que lea caracteres del teclado empleando getchar() y los cuente hasta
encontrar EOF. Luego debe imprimir la cantidad de caracteres y líneas encontradas.
Me hicieron esta aclaración: "Cuando escribís un texto, cada vez que apretás enter empieza una nueva línea."
Lo que tengo hasta ahora es:
Tengo unas dudas:
1: ¿El EOF tambien cuenta como caracter leido?
2: ¿Por qué cuando lo ejecuto luego de leer el EOF(ingreso EOF y presiono enter) vuelve a solicitar que ingrese otro caracter?
3: ¿Como hago para saber si el caracter ingresado es enter? esto es para saber la cantidad de lineas; por cierto ya intenté asignarle a catacter el getchar() y compararlo con un entero con 0x0A, como me vi en un ejercicio parecido, pero no lo entendí muy bien porque no salia y lo dejé.
4¿El asignarle el getchar() a un entero le da la cantidad de caracteres leidos? de ser así no se si se puede hacer sin un contador aparte para los caracteres, simplemente usar getchar() para saber la cantidad; aunque por lo que ví cuando lee el EOF se vuelve -1 así que se perderia la cuenta de caracteres.
PD: solamente puedo usar la librería stdio.h, ya que recien emnpiezo el curso y no se vieron otras librerias.
Les agradezco por su tiempo.
4) Escriba un programa que lea caracteres del teclado empleando getchar() y los cuente hasta
encontrar EOF. Luego debe imprimir la cantidad de caracteres y líneas encontradas.
Me hicieron esta aclaración: "Cuando escribís un texto, cada vez que apretás enter empieza una nueva línea."
Lo que tengo hasta ahora es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# include <stdio.h>
int main()
{
int lineas = 0;
int caracteres = 0;
char caracter;
while (getchar() != EOF)
{
caracteres = caracteres +1;
}
printf("La cantidad de caracteres es: %d ", caracteres - 1);
printf("\n La cantidad de lineas es: %d", lineas);
return 0;
}
Tengo unas dudas:
1: ¿El EOF tambien cuenta como caracter leido?
2: ¿Por qué cuando lo ejecuto luego de leer el EOF(ingreso EOF y presiono enter) vuelve a solicitar que ingrese otro caracter?
3: ¿Como hago para saber si el caracter ingresado es enter? esto es para saber la cantidad de lineas; por cierto ya intenté asignarle a catacter el getchar() y compararlo con un entero con 0x0A, como me vi en un ejercicio parecido, pero no lo entendí muy bien porque no salia y lo dejé.
4¿El asignarle el getchar() a un entero le da la cantidad de caracteres leidos? de ser así no se si se puede hacer sin un contador aparte para los caracteres, simplemente usar getchar() para saber la cantidad; aunque por lo que ví cuando lee el EOF se vuelve -1 así que se perderia la cuenta de caracteres.
PD: solamente puedo usar la librería stdio.h, ya que recien emnpiezo el curso y no se vieron otras librerias.
Les agradezco por su tiempo.
Valora esta pregunta


0