Cette fonction est supposée obtenir un paramètre en tant que pointeur d'un fichier et placer tout le fichier dans l'anagramme de la structure, puis l'écrire dans un autre fichier. À l'heure actuelle, les données ne contiennent que a.word, mais elles supposent également contenir a.sorted. J'ai vérifié l'a.sorted en utilisant printf et il imprime les données correctes, mais pourquoi ne pas écrire dans le fichier de données? Il encore ne peux pas obtenir le a.sorted même si j'augmente le nombre de frwitec fwrite() écrit dans un fichier avec une seule variable struct?
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
#include <errno.h>
#include <ctype.h>
#include "anagrams.h"
#define SIZE 80
//struct
struct anagram {
char word[SIZE];
char sorted[SIZE];
};
void buildDB (const char *const dbFilename){
FILE *dict, *anagramsFile;
struct anagram a;
//check if dict and anagram.data are open
errno=0;
dict= fopen(dbFilename, "r");
if(errno!=0) {
perror(dbFilename);
exit(1);
}
errno=0;
anagramsFile = fopen(anagramDB,"wb");
char word[SIZE];
char *pos;
int i=0;
while(fgets(word, SIZE, dict) !=NULL){
//get ripe of the '\n'
pos=strchr(word, '\n');
*pos = '\0';
strncpy(a.word,word,sizeof(word));
//lowercase word
int j=0;
while (word[j])
{
tolower(word[j]);
j++;
}
/* sort array using qsort functions */
qsort(word,strlen(word), 1, charCompare);
strncpy(a.sorted,word,sizeof(word));
//printf(a);
fwrite(&a,1,strlen(word)+1,anagramsFile);
i++;
}
fclose(dict);
fclose(anagramsFile);
}
il supposé contient des données avec a.sorted par exemple « 10 01ht » données:
le problème est que je veux à la fois a.word et a.sorted écrire dans le fichier, et pas seulement l'un d'eux – keivn
Pouvez-vous poster juste la 'struct anagram' –
I posté déjà, désolé j'ai oublié de le poster – keivn