Hola, tengo que hacer un programa que cuente espacios tabuladores y lineas, pero solo me cuenta las lineas.. que hago mal?
#include<stdio.h>
main()
{
int c, nl,t,e;
nl=0;
t=0;
e=0;
while((c=getchar())!= EOF)
{if (c=='\n')
++nl;}
{
if (c=='\t')
++t;
}
{
if (c=='\ ')
++e;
}
printf("%d %d %d\n",nl,t,e);
}
A mí me funciona eh , lo que pasa es que con getchar coges solo un carácter , no una cadena eh! Y aun así me funciona.
funciona el conteo de lineas pero no el de espacios y tabuladores, "tabuladores quiere decir espacios creados por tab no"?
Cita de: Ander123 en 29 Agosto 2012, 17:02 PM
funciona el conteo de lineas pero no el de espacios y tabuladores, "tabuladores quiere decir espacios creados por tab no"?
El tabulador es esta tecla(Por si las moscas jeje) Si son creados por tab.
(http://2.bp.blogspot.com/-slH5dcUFgS8/T7jW7d6TIzI/AAAAAAAAARg/o0irs-0VHm8/s1600/TECLA%2BTAB.jpg)
Si le das ahí y después a intro. Y pulsas EOF en Windows es Ctrl + Z te sale.Y lo de los espacios también funciona , pon un monton de espacios y pulsa y intro y después Ctrl + Z y intro otra vez y verás :)
#include<stdio.h>
int main()
{
int c, nl,t,e;
nl=0;
t=0;
e=0;
while((c=getchar())!= EOF)
{
if (c=='\n')
++nl;
if (c=='\t')
++t;
if (c=='\\')
++e;
}
printf("%d %d %d\n",nl,t,e);
return 0;
}
Si quieres contar los espacios en blaco, en lugar de
if (c=='\\')
pones
if (c==' ')
Cita de: leosansan en 29 Agosto 2012, 17:25 PM
#include<stdio.h>
main()
{
int c, nl,t,e;
nl=0;
t=0;
e=0;
while((c=getchar())!= EOF)
{
if (c=='\n')
++nl;
if (c=='\t')
++t;
if (c=='\\')
++e;
}
printf("%d %d %d\n",nl,t,e);
}
Si quieres contar los espacios en blaco, en lugar de
if (c=='\\')
pones
if (c==' ')
Tienes razón el problema son las llaves del while , que lo había corregido yo en su código para probarlo y se me ha olvidado decirlo.
He visto que el fallo estaba en que yo había separado con claves las tres instrucciones, porque así no funcionaba? que diferencia hay?
CitarHe visto que el fallo estaba en que yo había separado con claves las tres instrucciones, porque así no funcionaba? que diferencia hay?
Hacen falta las llaves para While que se compone de varias sentencias, pero como lo if sólo tienen una sentencia no hace falta llaves para ellos.
los espacios en blanco no los cuenta, se crean con la barra espaciadora no?:S porque estaba haciendo otro programa parecido y tampoco los contaba,
Cita de: Ander123 en 29 Agosto 2012, 17:54 PM
los espacios en blanco no los cuenta, se crean con la barra espaciadora no?:S porque estaba haciendo otro programa parecido y tampoco los contaba,
A ver si te aclaras con lo que te cuento:
if (c=='\\')
cuenta las "\" que introduces, mientras que si usas:
if (c==' ')
cuenta los espacios en blanco.
Saludos .... y ánimo que los comienzos siempre cuestan.