所以我有問題試圖讀取由三行組成的文本文件。我正在嘗試讀取每行並創建每行排列。我想繼續循環遍歷每一行,直到我點擊EOF。我試圖在我的main中的while循環中實現fgets。我在正確的軌道上嗎?我遇到的主要問題是在我的main中傳遞一個char到我的排列方法。讀取文件 - 逐行創建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;
}
那麼,你正在傳遞一個'char *',其中'char *'是期望的。你的編譯器應該告訴你... – John3136
我明白,int x被傳遞到一個參數,需要是一個字符...我想我的問題是...如何將該int變成一個字符?施展它?我一直在閱讀fgets逐行閱讀,但是,它停在\ n或EOF ..? –
嘗試'char x [] =「abc」; stringPermutation(x,0,stelen(x)-1);' – BLUEPIXY