3行からなるテキストファイルを読み込もうとしています。私は各行を読み込み、行ごとに順列を作成しようとしています。私はEOFを打つまで、これをすべての行に繰り返していきたいと思います。私は私のメインのwhileループ内にfgetsを実装しようとしています。正しい軌道にいるのですか?私が持っている主な問題は、私のメインの順列法にcharを渡すことです。ファイルを1行ずつ読み込んで順列を作成します。
#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がcharである必要があるパラメータに渡されていることを理解しています...私の質問は...私はcharをcharに変換するにはどうすればよいですか?キャストする?私は行ごとに読むfgetsを読んできましたが、\ nまたはEOFで停止します。 –
'char x [] =" abc "を試してみてください。 (0、stelen(x)-1); – BLUEPIXY