Ayuda!!! No se como acabar!!!
Soy novato y tengo un problema, que seguramente tiene fácil solución
pero prefiero primero que vean el código fuente:
__________________El programa empieza aquí______________________________________
#include <stdio.h>
int main( ) {
char fnom [12]; //el nombre del archivo a de ser de 12 caracteres
char texto [100]; //puse 100 caracteres para provar
FILE* fichero;
printf ("Nombre de archivo: "); //escribir el nombre del archivo
scanf (" %s", fnom ); // escriban aquí el nombre del documento.
fichero = fopen( fnom , "w+"); //modo en que se abre el documento
printf("> ");
scanf ("%s", texto); // supongo que mi fallo esta a partir de aquí, pero ¿qué es lo que hago mal?
fputs ( texto, fichero); //guardo el contenido de texto en el documento
fclose;// cierro el documento
}
_________________El programa termina aquí______________________________________
En la pantalla sale lo siguiente:
Nombre de archivo: (escribes el nombre que le quieres dar al archivo)
>(Cuando introduces el nombre del archivo, en la línea de abajo aparece
">" y a continuación escribes el texto.)
Ya se que esto ni se parece a un editor de texto,pero mi problema es que
solo se guarda la primera palabra, esto se debe a que la función scanf solo guar-
da una palabra. Podría utilizar otra funciones pero con todas las que he
probado me dan errores de compilación, y no me dejan compilar el programa,
o en cambio me lo compilan y cuando ejecuto el programa se produce un error
fatal. Pretendo que el programa guarde varias líneas de texto en un documento,
pero solo llego a guardar una palabra. Mi pregunta es ¿qué hago mal?¿que tengo
que rectificar?
Te recomiendo utilizar la libreria string.h y ademas la variable donde vas a guardar el nombre de el archivo debe ser una cadena de caracteres y no solo un caracter ya que esto te generara problemas de compilacion.
Esto es lo que debes hacer:
1. primero debes hacer referencia a la libreria string.h.
2. luego debes renombrar a la variable como char* fnom[12], y con esto quedara.
Esto es lo que debes hacer:
1. primero debes hacer referencia a la libreria string.h.
2. luego debes renombrar a la variable como char* fnom[12], y con esto quedara.
Yo cambiaría la función de lectura del fichero por la función fgets() y para escribir los datos en el fichero la función fprintf();
Si necesitas un libro de consulta también te recomendaría el "El lenguaje de programación C" de Brian W. Kernighan y Dennis M. Ritchie, es el mejor que hay actualmente en el mercado para ANSI C
Si necesitas un libro de consulta también te recomendaría el "El lenguaje de programación C" de Brian W. Kernighan y Dennis M. Ritchie, es el mejor que hay actualmente en el mercado para ANSI C
Te recomiendo que utilices la función gets() esta obtiene la cadena que le pases por pantalla incluyendo espacios y saltos de línea, o sea recoge todo lo de la pantalla.
printf ("Nombre de archivo: "); //escribir el nombre del archivo
fnom = gets(); // escribe aquí el nombre del archivo
fichero = fopen( fnom , "w+");
Espero te sirva.
printf ("Nombre de archivo: "); //escribir el nombre del archivo
fnom = gets(); // escribe aquí el nombre del archivo
fichero = fopen( fnom , "w+");
Espero te sirva.
