Мусор в начале строки при записи в файл - C (СИ)
Формулировка задачи:
Генерирует все как надо, но вначале идет мусор.
Есть у кого-нибудь идеи как исправить? Буду очень благодарен.
void cycle5 (double alf, char *letters)
{
FILE *fp = fopen("Dictionary.txt","w");
for (int i = 0;i<alf;i++)
{
if (alf = 3)
{
char p[2];
p[0]=letters[i];
p[1]='\n';
fprintf(fp,"%s", p);
printf("%s",p);
for (int l = 0; l<alf; l++)
{
char p[3];
p[0]=letters[i];
p[1]=letters[l];
p[2]='\n';
fprintf(fp,"%s", p);
printf("%s",p);
for (int f = 0; f<alf;f++)
{
char p[4];
p[0]=letters[i];
p[1]=letters[l];
p[2]=letters[f];
p[3]='\n';
fprintf(fp,"%s", p);
printf("%s",p);
for (int m = 0; m<alf;m++)
{
char p[5];
p[0]=letters[i];
p[1]=letters[l];
p[2]=letters[f];
p[3]=letters[m];
p[4]='\n';
fprintf(fp,"%s", p);
printf("%s",p);
for (int n = 0;n<alf;n++)
{
char p[6];
p[0]=letters[i];
p[1]=letters[l];
p[2]=letters[f];
p[3]=letters[m];
p[4]=letters[n];
p[5]='\n';
fprintf(fp,"%s", p);
printf("%s",p);
}
}
}
}
}
}
fclose(fp);
}Решение задачи: «Мусор в начале строки при записи в файл»
textual
Листинг программы
void cycle5 (double alf, char *letters)
{
FILE *fp = fopen("Dictionary.txt","w");
for (int i = 0;i<alf;i++)
{
char p[2];
p[0]=letters[i];
p[1]='\0';
fprintf(fp,"%s", p);
printf("%s",p);
for (int l = 0; l<alf; l++)
{
char p[3];
p[0]=letters[i];
p[1]=letters[l];
p[2]='\0';
fprintf(fp,"%s\n", p);
printf("%s\n",p);
for (int f = 0; f<alf;f++)
{
char p[4];
p[0]=letters[i];
p[1]=letters[l];
p[2]=letters[f];
p[3]='\0';
fprintf(fp,"%s\n", p);
printf("%s\n",p);
for (int m = 0; m<alf;m++)
{
char p[5];
p[0]=letters[i];
p[1]=letters[l];
p[2]=letters[f];
p[3]=letters[m];
p[4]='\0';
fprintf(fp,"%s\n", p);
printf("%s\n",p);
for (int n = 0;n<alf;n++)
{
char p[6];
p[0]=letters[i];
p[1]=letters[l];
p[2]=letters[f];
p[3]=letters[m];
p[4]=letters[n];
p[5]='\0';
fprintf(fp,"%s\n", p);
printf("%s\n",p);
}
}
}
}
}
fclose(fp);
}
Объяснение кода листинга программы
В этом коде используется язык программирования C для записи данных в файл. Список действий, которые выполняются в коде:
- Открывается файл
Dictionary.txtдля записи данных. - Задается переменная
alfдля определения количества букв, которые будут записаны в файл. - Создается цикл, который будет выполняться
alfраз. - Внутри цикла создается массив символов
pразмером 2, который заполняется текущей буквой. - Записывается значение массива
pв файл и выводится на экран. - Создается вложенный цикл, который будет выполняться
alfраз. - Внутри вложенного цикла создается массив символов
pразмером 3, который заполняется тремя текущими буквами. - Записывается значение массива
pв файл и выводится на экран. - Создается еще один вложенный цикл, который будет выполняться
alfраз. - Внутри этого вложенного цикла создается массив символов
pразмером 4, который заполняется четырьмя текущими буквами. - Записывается значение массива
pв файл и выводится на экран. - Создается еще один вложенный цикл, который будет выполняться
alfраз. - Внутри этого вложенного цикла создается массив символов
pразмером 5, который заполняется пятью текущими буквами. - Записывается значение массива
pв файл и выводится на экран. - Создается еще один вложенный цикл, который будет выполняться
alfраз. - Внутри этого вложенного цикла создается массив символов
pразмером 6, который заполняется шестью текущими буквами. - Записывается значение массива
pв файл и выводится на экран. - Все циклы закрываются.
- Файл закрывается.
Похоже, что этот код генерирует все возможные комбинации букв в алфавите и записывает их в файл
Dictionary.txt.