Программа C не может открыть файл - PullRequest
1 голос
/ 29 октября 2011

У меня есть программа 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;
}

enter image description here

enter image description here enter image description here

Работает нормально из cmd.exe enter image description here Также работает нормально (но пишет полный путь для имени файла), когда я указываю полный путь в окне свойств проекта аргументов команды enter image description here

1 Ответ

3 голосов
/ 29 октября 2011

Убедитесь, что рабочий каталог запущенной программы является тем же, в котором хранится файл программы, когда вы запускаете его из проводника.Я не уверен, где это можно настроить в Windows, но я думаю, что это проблема ..

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