fprintf внутри для l oop не работает должным образом - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь создать текстовый файл, используя C, который будет содержать таблицу значений в градусах Фаренгейта и их перевод в градусы Цельсия. Я могу правильно использовать fprintf за пределами l oop, но когда я помещаю его внутрь, он ничего не печатает в файл. Код компилируется правильно, но когда я пытаюсь его выполнить, он завершается, но с кодом выхода "-1073741819"

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{

    FILE *filePointerThree;
    double myArray[100];

    filePointerThree = fopen("myFileFive.txt", "w");

    for(int i=0; i<=100; i++)
    {
        myArray[i] = (i-32)/1.8;
    }

    for(int j=0; j<=100; j+=5)
    {
        fprintf(filePointerThree, "%d degrees F \t %5.2lf degrees C\n", j, myArray[j]);
    }
    fclose(filePointerThree);
}

1 Ответ

1 голос
/ 02 апреля 2020

Ваш массив должен быть больше, чтобы содержать 101 значение (от 0 до 100):

    double myArray[101];

При дальнейшем рассмотрении код можно упростить, чтобы он не требовал массива, как показано ниже. return 0; в конце main() обеспечит код выхода 0. Незначительный: включения math.h и stdlib.h не требуются, поскольку fopen() и друзья определены в stdio.h.

#include <stdio.h>

int main()
{
    FILE *filePointerThree;

    filePointerThree = fopen("myFileFive.txt", "w");

    for(int j=0; j<=100; j+=5)
    {
        fprintf(filePointerThree, "%d degrees F \t %5.2lf degrees C\n", j, (j-32)/1.8);
    }

    fclose(filePointerThree);

    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...