Gracias por tus consejos dooque. Este es el código de mi programa (en realidad hay más funciones, pero no tienen nada que ver con lo que pregunto):
Ese es el código en el cual intervienen las variables de mi problema. Cuando llamo a la última función (guardarMatrizDePuntos), siempre me muestra por pantalla "Error al crear el fichero"
Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXCAR 50
#define TAM 300
int cargarFichero1(char [MAXCAR], char [TAM]);
int cargarFichero2(char [MAXCAR], char [TAM]);
void guardarMatrizDePuntos(char [MAXCAR], char [TAM], int, char [TAM], int);
void main()
{
char nomFich1[MAXCAR],nomFich2[MAXCAR],fichSal[MAXCAR];
char s1[TAM],s2[TAM];
int n1,n2,i,j;
do
{
n1=cargarFichero1(nomFich1,s1);
}
while (n1==-1);
do
{
n2=cargarFichero2(nomFich2,s2);
}
while(n2==-1);
for (i=0;nomFich1[i]!='.';i++)
{
fichSal[i]=nomFich1[i];
}
fichSal[i]='-';
i++;
for(j=0;nomFich2[j]!='.';j++)
{
fichSal[i]=nomFich2[j];
i++;
}
strcat(fichSal,".out");
guardarMatrizDePuntos(fichSal,s1,n1,s2,n2,puntos);
}
int cargarFichero1(char nomFich [MAXCAR], char s[TAM])
{
FILE *f;
int i,cont;
printf("Introduce el nombre del fichero con la primera secuencia (sin extension): ");
gets(nomFich);
strcat(nomFich,".sec");
f=fopen(nomFich,"r");
if (f==NULL)
{
printf("ERROR: El fichero %s no se pudo abrir\n",nomFich);
return -1;
}
else
{
i=0;
cont=-2;
s[i]=fgetc(f);
while (!feof(f))
{
i++;
s[i]=fgetc(f);
cont++;
}
fclose(f);
return cont;
}
}
int cargarFichero2(char nomFich [MAXCAR], char s[TAM])
{
FILE *f;
int i,cont;
printf("Introduce el nombre del fichero con la segunda secuencia (sin extension): ");
gets(nomFich);
strcat(nomFich,".sec");
f=fopen(nomFich,"r");
if (f==NULL)
{
printf("ERROR: El fichero %s no se pudo abrir\n",nomFich);
return -1;
}
else
{
i=0;
cont=-2;
s[i]=fgetc(f);
while (!feof(f))
{
i++;
s[i]=fgetc(f);
cont++;
}
fclose(f);
return cont;
}
}
void guardarMatrizDePuntos(char nomFich[MAXCAR], char s1[TAM], int n1, char s2[TAM], int n2)
{
FILE *f;
f=fopen(nomFich,"w");
if (f==NULL)
printf("Error al crear el fichero");
else
{
fprintf(f,"# MATRIZ DE PUNTOS #\n");
fprintf(f,"\n");
fprintf(f," ");
fprintf(f,"%s\n",s2);
}
fclose(f);
}
Ese es el código en el cual intervienen las variables de mi problema. Cuando llamo a la última función (guardarMatrizDePuntos), siempre me muestra por pantalla "Error al crear el fichero"