Dev - C++ - toupper

 
Vista:

toupper

Publicado por miguel (5 intervenciones) el 10/06/2005 20:36:04
Hola Un saludo a todos
Tengo un problema con un programa escrito en lenguaje C el programa me pide lo siguiente:
-Escrivir un programa que reciba el nombre de un fitxero de texto a través de la línia de comandos i le canvie todas las minusculas por mayusculas
yo he echo lo siguiente:

#include <stdio.h>
#include <ctype.h>

void main( int argc, char *argv[])
{
char c;
FILE *f, *f2;
f = fopen(argv[1], "wb");
f2 = fopen(argv[1], "rb");

if ((f ==NULL)&& (f2 == NULL))
printf("\n Error en obrir l'arxiu");

else
{

while( (c=fgetc(f))!=EOF)
{
c=toupper(c);//passar de minusculas a mayusculas
fputc(c, f);

}
}
fclose(f);
fclose (f2);

}

me conpila bien pero en vez de pasarme de minusculas a mayusculas me borra el fitxero. si alguien sabe como resolverlo le agradeceria que me lo dijese
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:toupper

Publicado por Julio Aguilar (6 intervenciones) el 10/06/2005 21:45:16
Si es que lo que pasa es que cuando abris el archivo con "wb" trunca el archivo a longitud cero si existe, o crea uno nuevo, se me ocurre que lo abras con "rb" y la salida la pongas en otro archivo.

esa seria una forma.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:toupper

Publicado por Miguel (5 intervenciones) el 11/06/2005 13:44:15
muchas gracias aun no lo he probado pero creo que si que ira bien. gracias por contestar

un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:toupper

Publicado por Miguel (5 intervenciones) el 11/06/2005 19:19:21
No he conseguido que funcione no he acabado de entender lo de pasarlo a otro archivo
me sigue borrando en contenido del fitxero en vez de pasarmelo a mayusculas
si sabes otra forma te agradeceria mucho que me ayudases
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:toupper

Publicado por Julio Aguilar (6 intervenciones) el 13/06/2005 17:13:58
Vaya mira modificando un poco tu programa y trabajando los ficheros no en binario el programa quedaria asi:

#include <stdio.h>
#include <ctype.h>

int main( int argc, char *argv[])
{
char c;
FILE *f, *f2;
f = fopen(argv[1], "r");
f2 = fopen(argv[2], "w");

if ((f ==NULL)&& (f2 == NULL))
printf("\n Error en obrir l'arxiu");

else
{

while( (c=fgetc(f))!=EOF)
{
c=toupper(c);//passar de minusculas a mayusculas
fputc(c, f2);

}
}
fclose(f);
fclose (f2);
return 0;
}

si lo guardaas con el nombre "a_may" cuando lo ejecutes llamalo asi:
c:\>a_may sal1.txt sal2.txt

donde sal1.txt debe de existir y tener texto

sal2.txt no debe existir y si existe se borrara y creara uno nuevo, y sera la salida de tu programa, alli estara el contenido de sal1.txt pero todo en mayusculas.

Yo lo probe y funciona hay me comentas que pasa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:toupper

Publicado por Miguel (5 intervenciones) el 13/06/2005 20:14:07
OK ahora si funciona muchas gracias julio , me traia de cabeza
un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar