对于C,Visual Studio-2017如何调试一个读取文本文件并在该文本文件之后打印输出的代码?

时间:2019-03-26 00:38:07

标签: c visual-studio file visual-studio-2017

我有一个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 Terminal上运行时,它可以正常工作并提供正确的输出。 (recLarge是可执行文件) enter image description here

如何在Visual Studio 2017上获得相同的输出?

2 个答案:

答案 0 :(得分:1)

编辑您的项目设置,并将所有命令行选项添加到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;
}

答案 1 :(得分:0)

我需要在资源下将文本文件“ rectangles.txt”创建为文本文件。主要的C代码将在源代码下。代码的调试必须将矩形.txt作为命令参数。编译为C代码(/ TC)。

enter image description here

enter image description here