RE:Ayuda programa ficheros
en uno de ellos, tengo que intoducir una serie de cadenas, y luego mostrarlas, el problema es que solo me muestra la primera palabra de la cadena, les adjunto el codigo fuente:
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
void escriptura(void);
void lectura(void);
main()
{
escriptura();
lectura();
}
void escriptura(void)
{
FILE *fp;
char a;
char nom[MAX];
char cadena1[MAX];
char cadena2[MAX];
char cadena3[MAX];
printf("
Intoduiex el nom del fitxer per escriure: ");
scanf("%s",&nom);
fflush(stdin);
if((fp=fopen(nom,"w"))==NULL)
{
puts("
No pot obrir-se el fitxer");
exit(-1);
}
printf("
Intoduiex la primera cadena: ");
scanf("%s",cadena1);
fflush(stdin);
fputs(cadena1,fp);
fputs("
",fp);
printf("
Intoduiex la segona cadena: ");
scanf("%s",cadena2);
fflush(stdin);
fputs(cadena2,fp);
fputs("
",fp);
printf("
Intoduiex la tarcera cadena: ");
scanf("%s",cadena3);
fflush(stdin);
fputs(cadena3,fp);
fclose(fp);
}
void lectura(void)
{
FILE *fp;
char nom[MAX];
char cadena1[MAX];
char cadena2[MAX];
char cadena3[MAX];
printf("
Intodueix el nom del fitxer per lectura: ");
scanf("%s",nom);
fflush(stdin);
if((fp=fopen(nom,"r"))==NULL)
{
puts("
No pot obrir-se el fitxer");
exit(-1);
}
fgets(cadena1,MAX,fp);
fgets(cadena2,MAX,fp);
fgets(cadena3,MAX,fp);
fclose(fp);
printf("
La cadena1 es: %s", cadena1);
printf("
La cadena2 es: %s", cadena2);
printf("
La cadena3 es: %s
", cadena3);
}