Hola,
Casi no programo en c++, pero me he propuesto aprender mejor a utilizar este programa y en este momento tengo que realizar un analizador lexico, en el cual en primer lugar tengo que leer un archivo de texto externo (y aun no manejo muy bien lo de ficheros) luego de ese archivo el programa debe decirme cuantas letras (cuantas a, cuantas b, .., cuantas z) cuantos numeros (cuantos 0, cuantos 1,..,cuantos 9) cuantos espacios, y cuantos simbolos osea otros... Existen por linea...
el que ya tengo hecho en primer lugar no me toma un archivo externo (sino que yo le pido al usuario que escriba el parrafo), lee cada letra espcio etc pero de todo el parrafo, no linea por linea, mi segunda duda es como le hago para que me lea linea por linea, uso una matriz... como????
de antemano gracias por su tiempo... hay les dejo el codigo como lo llevo hasta el momento....
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
main()
{
int a=0, b=0, c=0, d=0, e=0, f=0, g=0, h=0, i=0, j=0, k=0, l=0, m=0, n=0, o=0, p=0, q=0, r=0, s=0, t=0, u=0, v=0, w=0, x=0, y=0, z=0;
int uno=0, dos=0, tres=0, cuatro=0, cinco=0, seis=0, siete=0, ocho=0, nueve=0, cero=0;
int otro=0, esp=0, enter=0;
char car;
printf("Introduzca su texto\nPara dar final de tu texto introduce *\n");
while((car=getchar())!='*')
{
while (car=='\n')
{
enter++;
break;
}
while (car=='0')
{
cero++;
break;
}
while (car=='1')
{
uno++;
break;
}
while (car=='2')
{
dos++;
break;
}
while (car=='3')
{
tres++;
break;
}
while (car=='4')
{
cuatro++;
break;
}
while (car=='5')
{
cinco++;
break;
}
while (car=='6')
{
seis++;
break;
}
while (car=='7')
{
siete++;
break;
}
while (car=='8')
{
ocho++;
break;
}
while (car=='9')
{
nueve++;
break;
}
while (car=='a')
{
a++;
break;
}
while (car=='b')
{
b++;
break;
}
while (car=='c')
{
c++;
break;
}
while (car=='d')
{
d++;
break;
}
while (car=='e')
{
e++;
break;
}
while (car=='f')
{
f++;
break;
}
while (car=='g')
{
g++;
break;
}
while (car=='h')
{
h++;
break;
}
while (car=='i')
{
i++;
break;
}
while (car=='j')
{
j++;
break;
}
while (car=='k')
{
k++;
break;
}
while (car=='l')
{
l++;
break;
}
while (car=='m')
{
m++;
break;
}
while (car=='n')
{
n++;
break;
}
while (car=='o')
{
o++;
break;
}
while (car=='p')
{
p++;
break;
}
while (car=='q')
{
q++;
break;
}
while (car=='r')
{
r++;
break;
}
while (car=='s')
{
s++;
break;
}
while (car=='t')
{
t++;
break;
}
while (car=='u')
{
u++;
break;
}
while (car=='v')
{
v++;
break;
}
while (car=='w')
{
w++;
break;
}
while (car=='x')
{
x++;
break;
}
while (car=='y')
{
y++;
break;
}
while (car=='z')
{
z++;
break;
}
while (car=='A')
{
a++;
break;
}
while (car=='B')
{
b++;
break;
}
while (car=='C')
{
c++;
break;
}
while (car=='D')
{
d++;
break;
}
while (car=='E')
{
e++;
break;
}
while (car=='F')
{
f++;
break;
}
while (car=='G')
{
g++;
break;
}
while (car=='H')
{
h++;
break;
}
while (car=='I')
{
i++;
break;
}
while (car=='J')
{
j++;
break;
}
while (car=='K')
{
k++;
break;
}
while (car=='L')
{
l++;
break;
}
while (car=='M')
{
m++;
break;
}
while (car=='N')
{
n++;
break;
}
while (car=='O')
{
o++;
break;
}
while (car=='P')
{
p++;
break;
}
while (car=='Q')
{
q++;
break;
}
while (car=='R')
{
r++;
break;
}
while (car=='S')
{
s++;
break;
}
while (car=='T')
{
t++;
break;
}
while (car=='U')
{
u++;
break;
}
while (car=='V')
{
v++;
break;
}
while (car=='W')
{
w++;
break;
}
while (car=='X')
{
x++;
break;
}
while (car=='Y')
{
y++;
break;
}
while (car=='Z')
{
z++;
break;
}
while (car==' ')
{
esp++;
break;
}
while(!((car>='0' && car<='9')||(car>='A' && car<='Z')|| (car>='a' && car<='z') ||(car==' ') ||(car=='\n')))
{
otro++;
break;
}
}
printf("la linea %d tiene:\n",enter);
printf(" 0= %d\t 1= %d\t 2= %d \n 3= %d\t 4= %d\t 5= %d \n 6= %d\t 7= %d\t 8= %d\t 9= %d \n A= %d\t B= %d\t C= %d\t D= %d\t E= %d\t F= %d\t G= %d\t H= %d\t I= %d \n J= %d\t K= %d\t L= %d\t M= %d\t N= %d\t O= %d\t P= %d\t Q= %d\t R= %d \n S= %d\t T= %d\t U= %d\t V= %d\t W= %d\t X= %d\t Y= %d\t Z= %d \n ESPACIOS= %d\t OTROS= %d\t ENTER= %d \n",cero,uno,dos,tres,cuatro,cinco,seis,siete,ocho,nueve,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,esp,otro,enter);
system("pause");
return 0;
}
bendiciones...