0

"Прекращена работа программы", не запускается. Массив символов ch в файл file_4 записывается, открываю через блокнот. Этот же файл в массив ch2 видимо не записывается.


{
    char ch[] = "abc ef   g ik   l     mno p  qrst ";
    FILE* ptr_ch = fopen("file_4", "w");
    if (ptr_ch != NULL)
    {
        for (int i = 0; i < sizeof(ch); i++) fprintf(ptr_ch, "%c", ch[i]);
        fclose(ptr_ch);
    }
    char ch2 [sizeof(ch)];
    ptr_ch = fopen("file_4", "r+");
    if (ptr_ch != NULL)
    {
        int i = 0;
        while (!feof(ptr_ch))
 {
            fscanf(ptr_ch, "%c", ch2[i++]);
        }
        fclose(ptr_ch);
    }
    for (int i = 0; i < 35; i++) cout << ch2[i] << " ";
} ```
  • 2
    fscanf(ptr_ch, "%c", ch2[i++]); — и что, в ch2[i++] и в самом деле лежит адрес памяти, куда надо записывать очередной символ? А за while (!feof(ptr_ch)), как и за отсутствие форматирования, бьют по рукам и массируют копчик. – Harry Aug 05 '22 at 13:27

1 Answers1

0

Попробуйте исправить

fscanf(ptr_ch, "%c", ch2[i++]);

на

fscanf(ptr_ch, "%c", &ch2[i++]);
Mikhajlo
  • 12,592