J'ai donc des problèmes pour essayer de lire un fichier texte composé de trois lignes. J'essaie de lire chaque ligne et de créer des permutations par ligne. Je veux continuer à boucler en faisant cela à chaque ligne jusqu'à ce que je frappe EOF. J'essaie d'implémenter des fgets dans la boucle while de mon principal. Suis-je sur la bonne voie? Le principal problème que j'ai est de passer un caractère à ma méthode de permutation dans mon principal.Lire le fichier - ligne par ligne pour créer des permutations dans c
#include <stdio.h>
void swap(char *x, char *y)
{
char tempVariable;
tempVariable = *x;
*x = *y;
*y = tempVariable;
}
void stringPermutation(char *a, int zeroVariable, int factorial)
{
int i;
if(zeroVariable == factorial)
{
printf("%s\n", a);
}
else
{
for(i = zeroVariable; i <= factorial; i++)
{
swap((a + zeroVariable), (a + i));
stringPermutation(a, zeroVariable + 1, factorial);
swap((a + zeroVariable), (a + i));
}
}
}
int main(int argc, char *argv[])
{
if(argc != 2)
{
printf("ERROR - WRONG AMOUNT OF ARGUMENTS\n");
}
else
{
FILE *file = fopen(argv[1], "r");
int x;
printf("PERMUTATIONS:\n");
while((x = fgetc(file)) != EOF)
{
stringPermutation(x, 0, x - 1); //I'm messing up here
}
fclose(file);
}
return 0;
}
Eh bien, vous passez un 'char' où un' char * 'est attendu. Votre compilateur aurait dû vous dire que ... – John3136
Je comprends que int x est passé dans un paramètre qui doit être un char ... je suppose que ma question est ... comment puis-je transformer cet int en un char? le jeter? J'ai lu que fgets lit ligne par ligne, cependant, il s'arrête à \ n ou EOF ..? –
essayez 'char x [] =" abc "; stringPermutation (x, 0, stelen (x) -1); ' – BLUEPIXY