• Sábado 14 de Diciembre de 2024, 11:53

Autor Tema:  Vocales.cpp  (Leído 1890 veces)

tania19

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Vocales.cpp
« en: Martes 4 de Marzo de 2008, 21:46 »
0
HOLA!
TENGO UN PROBLEMA EN ESTE PROGRAMA EL PROBLEMA ES QUE ME MARCA ERRORES Y CREO QUE ES EN EL SWITCH ME PODRIAN AYUDAR ???
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Vocales.cpp
« Respuesta #1 en: Martes 4 de Marzo de 2008, 23:06 »
0
Depuralo.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

fORU-

  • Miembro MUY activo
  • ***
  • Mensajes: 225
  • Nacionalidad: mo
    • Ver Perfil
Re: Vocales.cpp
« Respuesta #2 en: Miércoles 5 de Marzo de 2008, 19:47 »
0
Hola companero vera  donde tiene el scanf para introducir valor a la variable op
lo tiene asi "scanf("%d",&op); siendo que op esta declarado como tipo char
 :P , y como veo que para acceder al menu es con letras psss la manera correcta seria "scanf("%c",&op);

A por cierto yo me esperaba algun error en la hora de compilacion pero nop al parecer este tipo de errores pasa por desapercibido a la de compilar.
atte:fORU-

tania19

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Vocales.cpp
« Respuesta #3 en: Viernes 7 de Marzo de 2008, 03:03 »
0
HOLA!
BUENO AQUI ESTOY DE NUEVO CON EL MISMO PROGRAMA PERO ESTA VES PORQUE NO FUNCIONA LA PARTE DONDE SE CUENTAN LAS VOCALES..ME PODRIAN AYUDAR???
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

Epa

  • Miembro MUY activo
  • ***
  • Mensajes: 242
  • Nacionalidad: ar
    • Ver Perfil
Re: Vocales.cpp
« Respuesta #4 en: Sábado 8 de Marzo de 2008, 03:50 »
0
Buenas.

Mira para empezar lo primero que hay que detallar, en mi caso hace q no funcione, puede que segun que compilador uses traiga problemas o no.
Cuando recoges datos de la pantalla se almacenan en un buffer, y hay veces que el buffer no se libera al reutilizar la funcion, por lo que la pasa por alto y queda almacenado el valor anterior. Para prevenir esto es conveniente limpiar el bufer de lectura antes de leer un dato, de la siguiente manera:
Código: Text
  1.  
  2. fflush(stdin);
  3.  
  4.  


Luego para contar caracteres necesitas un bucle, no una iteracion, por ejemplo esta si quieres ir comparando como tienes en tu programa:

Código: Text
  1.  
  2.  j=0;
  3.  cont = 0;
  4.  
  5.  while (con[j] != '\0'){
  6.        if((con[j]=='a')||(con[j]=='e')||(con[j]=='i')||(con[j]=='o')||(con[j]=='u')||
  7.        (con[j]=='A')||(con[j]=='E')||(con[j]=='I')||(con[j]=='O')||(con[j]=='U')){cont++;}
  8.        j++;
  9.        }
  10.  printf("La cantidad de vocales en la cadena \"%s\" es: %d",con, cont);
  11.  
  12.  


Espero que te sea util, saludos

Edito, se me habia olvidado la parte del archivo.

En tu fichero cuentas las vocales de la cadena que se ingresa. Para contar las del archivo, debes midificar la funcion fputs por
Código: Text
  1.  
  2. fgets(con,200,chuy);
  3.  
  4.  
con es el buffer de almacenamiento, 200 es el tamaño del buffer, con eso si el archivo tiene mas de 200 caracteres solo se leeran 199. y chuy es el fichero
Para que no se te queden partes afuera si el archivo es mas grande debes agregar un bucle con esa funcion hasta que aparesca el caracter de fin de fichero '\0'
The sweet smell of a great sorrow lies over the land.