C程序无法打开文件

gam*_*boy 1 c netbeans file

我在同一文件夹中有程序 proba2.exe 和文件 text.txt,当我在项目属性中设置命令行参数时,它无法打开文件,但是当我从命令提示符运行程序时,它工作正常。

/* count.c -- using standard I/O */
#include <stdio.h>

#include <stdlib.h> // ANSI C exit() prototype
int main(int argc, char *argv[])
{
    int ch;         // place to store each character as read
    FILE *fp;       // "file pointer" 
    long count = 0;

    if (argc != 2)
    {
        printf("Usage: %s filename\n", argv[0]);
        exit(1);
    }
    if ((fp = fopen(argv[1], "r")) == NULL)
    {
        printf("Can't open %s\n", argv[1]);
        exit(1);
    }
    while ((ch = getc(fp)) != EOF)
    {
       putc(ch,stdout);  // same as putchar(ch);
       count++;
    }
    fclose(fp);
    printf("File %s has %ld characters\n", argv[1], count);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述 在此输入图像描述

从 cmd.exe 运行正常 在此输入图像描述 当我在命令参数项目属性窗口中指定完整路径时,也可以正常工作(但写入文件名的完整路径) 在此输入图像描述

Gio*_*gio 5

确保运行程序的工作目录与从资源管理器启动程序时存储程序文件的目录相同。我不确定在 Windows 中哪里可以设置,但我认为这就是问题所在。