So habe ich Probleme beim Versuch, eine Textdatei aus drei Zeilen zu lesen. Ich versuche, jede Zeile zu lesen und Permutationen pro Zeile zu erstellen. Ich möchte damit fortfahren, dies bis zu jeder Zeile zu tun, bis ich auf EOF stoße. Ich versuche, Fgets innerhalb der While-Schleife in meinem Haupt zu implementieren. Bin ich auf dem richtigen Weg? Das Hauptproblem, das ich habe, ist, einen Char an meine Permutationsmethode in meinem Haupt zu übergeben.Datei lesen - Zeile für Zeile zum Erstellen von Permutationen in 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;
}
Nun, Sie übergeben ein 'char', wo ein' char * 'erwartet wird. Dein Compiler sollte dir das gesagt haben ... – John3136
Ich verstehe, dass int x in einen Parameter übergeben wird, der ein char sein muss ... ich denke, meine Frage ist ... wie mache ich diesen int zu einem char? es werfen? Ich habe gelesen, dass fgets Zeile für Zeile liest, aber es stoppt bei \ n oder EOF ..? –
versuche 'char x [] =" abc "; stringPermutation (x, 0, stelen (x) -1); ' – BLUEPIXY