Для C, как Visual Studio-2017 может отлаживать код, который читает текстовый файл и печатает вывод, следующий за этим текстовым файлом? - PullRequest
0 голосов
/ 26 марта 2019

У меня есть код C, который открывает и читает текстовый файл с числами, а затем вычисляет площадь прямоугольника, используя эти числа. Мой код:

#include <stdio.h>
int main()
{
    FILE *ifile;
    float length, width;
    float maxarea = 0, maxlen, maxwidth;
    ifile = fopen("rectangles.txt", "r");
    while (feof(ifile) <= 0)
    {
        fscanf(ifile, "%f %f", &length, &width);
        if (length * width > maxarea)
        {
            maxarea = length * width;
            maxlen = length;
            maxwidth = width;
        }
    }
    printf("Maximum area is %f for rectangle with length %f and width %f",
        maxarea, maxlen, maxwidth);
    fclose(ifile);
    return(0);
}

Когда я отлаживаю это, это показывает: enter image description here

Когда я повторяю это, он показывает эту ошибку: enter image description here

С тем же кодом, когда я запускаю его на терминале Linux, он работает и дает правильный вывод. (recLarge - исполняемый файл) enter image description here

Как получить такой же вывод в Visual Studio 2017?

Ответы [ 2 ]

1 голос
/ 26 марта 2019

Отредактируйте настройки своего проекта и добавьте любые параметры командной строки в Command Arguments:

Project Properties

Обратите внимание на настройку Working Directory.

Очевидно, ваша main функция в данный момент не настроена для этого.Вам необходимо добавить поддержку аргументов:

int main(int argc, char **argv)
{
    if (argc <= 1)
    {
        fprintf(stderr, "Not enough arguments\n");
        return EXIT_FAILURE;
    }

    char *filename = argv[1];
    FILE *ifile = fopen(filename,"r");
    if (!file)
    {
        perror("Cannot open file");
        return EXIT_FAILURE;
    }

    // ...

    return EXIT_SUCCESS;
}
0 голосов
/ 27 марта 2019

Мне нужно было создать текстовый файл "rectangles.txt" в разделе ресурсов в виде текстового файла. Основной код C будет находиться под источником. Перезапись кода должна иметь rectangles.txt в качестве аргумента команды. Компилировать как следует Компилировать как код C (/ TC).

enter image description here

enter image description here

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