I'm trying to store an "address" in a array with 150 spaces , this is stored in a txt document and the problem is that when I open the txt document the address shows me the spaces leftovers .
The code is as follows:
struct cliente{
char dni[9];
char nombre[20];
char apellidos[80];
char direccion[150]
}clientes[max_clientes];
void aniadirCliente()
{
if(clientes[n].dni[0]=='struct cliente{
char dni[9];
char nombre[20];
char apellidos[80];
char direccion[150]
}clientes[max_clientes];
void aniadirCliente()
{
if(clientes[n].dni[0]=='%pre%'){
printf("\nIntroduce el nombre del archivo: \nNombre por defecto: clientes.txt\n\n");
gets(nom_archivo);
fflush(stdin);
//Cuando abrimos el fichero le tenemos que poner rw para que podamos escribir y leer.
archivo=fopen(nom_archivo,"rw");
if ((archivo = fopen(nom_archivo, "rw")) == NULL) {
fprintf(stderr, "\n\nEl archivo no existe.");
system("cls"); //En windows limpia pantalla
}else{
int i;
printf("\n\nArchivo cargado correctamente.");
for(i=0; i<max_clientes;i++){
//Los datos teneis que ponerlos con _ porque no coge los espacios. Ej: Pelegrin_Castillo
fscanf(archivo,"\n %s %s %s %s",clientes[i].dni,clientes[i].nombre,clientes[i].apellidos,clientes[i].direccion);
}
for(i=0;i<max_clientes;i++){
if(clientes[i].dni[0]=='%pre%'){
//Crear un nuevo cliente, lo mismo que antes los espacios con _
puts("DNI:");
scanf("%s", &clientes[i].dni);
fprintf(archivo, "%s", clientes[i].dni);
puts("Nombre:");
scanf("%s", &clientes[i].nombre);
fprintf(archivo, "%s", &clientes[i].nombre);
puts("Apellidos:");
scanf("%s", &clientes[i].apellidos);
fprintf(archivo, "%s", &clientes[i].apellidos);
puts("Direccion:");
scanf("%s", &clientes[i].direccion);
fprintf(archivo, "%s", &clientes[i].direccion);
break;
}
}
}
}
fclose(archivo);
system("cls");
}
'){
printf("\nIntroduce el nombre del archivo: \nNombre por defecto: clientes.txt\n\n");
gets(nom_archivo);
fflush(stdin);
//Cuando abrimos el fichero le tenemos que poner rw para que podamos escribir y leer.
archivo=fopen(nom_archivo,"rw");
if ((archivo = fopen(nom_archivo, "rw")) == NULL) {
fprintf(stderr, "\n\nEl archivo no existe.");
system("cls"); //En windows limpia pantalla
}else{
int i;
printf("\n\nArchivo cargado correctamente.");
for(i=0; i<max_clientes;i++){
//Los datos teneis que ponerlos con _ porque no coge los espacios. Ej: Pelegrin_Castillo
fscanf(archivo,"\n %s %s %s %s",clientes[i].dni,clientes[i].nombre,clientes[i].apellidos,clientes[i].direccion);
}
for(i=0;i<max_clientes;i++){
if(clientes[i].dni[0]=='%pre%'){
//Crear un nuevo cliente, lo mismo que antes los espacios con _
puts("DNI:");
scanf("%s", &clientes[i].dni);
fprintf(archivo, "%s", clientes[i].dni);
puts("Nombre:");
scanf("%s", &clientes[i].nombre);
fprintf(archivo, "%s", &clientes[i].nombre);
puts("Apellidos:");
scanf("%s", &clientes[i].apellidos);
fprintf(archivo, "%s", &clientes[i].apellidos);
puts("Direccion:");
scanf("%s", &clientes[i].direccion);
fprintf(archivo, "%s", &clientes[i].direccion);
break;
}
}
}
}
fclose(archivo);
system("cls");
}