Programación General > Visual C++
Problema Al Escribir En Fichero
(1/1)
swingt81:
hola. estoy teniendo un problema con algo muy sencillo pero no lo resuelvo. a ver si me podeis echar una mano. tengo ke abrir un fichero de texto, no vacio, y escribir un caracter (por ejemplo una S mayuscula, codigo 83) al ppio de la 2ª linea. es una chorrada, creo q lo estoy haciendo bien, pero no funciona. este es el codigo:
void main(void){
FILE *fichero;
int num;
char linea[40];
fichero=fopen("proba.inf","r+"); //el fichero existe y tiene datos, eh
fgets(linea,40, fichero); //leo la 1ªliena
num=83;
fputc(num,fichero);
fclose(fichero);
}
a ver q me podeis decir. gracias
JuanK:
abrise el archivo en modo binario, para usarlo de forma adecuada con las funciones de texto abrelo así ( si mal no recuerdo)
--- Código: Text --- fichero=fopen("proba.inf","rt+");
dacap:
--- Cita de: "swingt81" --- tengo ke abrir un fichero de texto, no vacio, y escribir un caracter (por ejemplo una S mayuscula, codigo 83) al ppio de la 2ª linea. es una chorrada, creo q lo estoy haciendo bien, pero no funciona.
--- Fin de la cita ---
Pueden haber dos problemas:
1) Que en realidad quieras agregar el caracter. Tu código sobreescribe el primer caracter de la segunda línea, no lo agrega.
2) El tamaño del arreglo "linea" es muy pequeño como para alojar la primera línea completa (entonces el fputc modifica el caracter 40 de la primera línea). Te recomiendo utilizar un tamaño de "char linea[256];".
P/D: También podés usar fputc('S', fichero); que es mucho más comprensible que el código ASCII 83.
diego.martinez:
umm si lo que quieres es llegar a la segunda linea, no hagas una lectura asi.
fgets(linea,40, fichero); leera una linea hasta encontrar un espacio en blanco
mejor rastrea desde el principio (llendo al principio con un fseek) y luego muevete con un fgetc hasta encontrar el retorno de carro.
entonces si lo que quieres hacer es incrustar la s, lee con fread todo el archivo desde la linea 2 hasta el final, escribe la S y luego todo el archivo otra vez.
Navegación
Ir a la versión completa