Мусор в начале строки при записи в файл - 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 для записи данных в файл. Список действий, которые выполняются в коде:

  1. Открывается файл Dictionary.txt для записи данных.
  2. Задается переменная alf для определения количества букв, которые будут записаны в файл.
  3. Создается цикл, который будет выполняться alf раз.
  4. Внутри цикла создается массив символов p размером 2, который заполняется текущей буквой.
  5. Записывается значение массива p в файл и выводится на экран.
  6. Создается вложенный цикл, который будет выполняться alf раз.
  7. Внутри вложенного цикла создается массив символов p размером 3, который заполняется тремя текущими буквами.
  8. Записывается значение массива p в файл и выводится на экран.
  9. Создается еще один вложенный цикл, который будет выполняться alf раз.
  10. Внутри этого вложенного цикла создается массив символов p размером 4, который заполняется четырьмя текущими буквами.
  11. Записывается значение массива p в файл и выводится на экран.
  12. Создается еще один вложенный цикл, который будет выполняться alf раз.
  13. Внутри этого вложенного цикла создается массив символов p размером 5, который заполняется пятью текущими буквами.
  14. Записывается значение массива p в файл и выводится на экран.
  15. Создается еще один вложенный цикл, который будет выполняться alf раз.
  16. Внутри этого вложенного цикла создается массив символов p размером 6, который заполняется шестью текущими буквами.
  17. Записывается значение массива p в файл и выводится на экран.
  18. Все циклы закрываются.
  19. Файл закрывается. Похоже, что этот код генерирует все возможные комбинации букв в алфавите и записывает их в файл Dictionary.txt.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5
Похожие ответы