2013-09-16 2 views
3

У меня есть программа для чтения некоторых значений из текстового файла ввода.Имя входного файла как команда

int main(){ 

    FILE *pf; 
    int i; 
    int j; 

    pf = fopen("input.txt" , "r"); 

    fscanf(pf ,"%d , %d" , &i ,&j); 

    printf("%d ,%d\n" , i ,j); 

    fclose(pf); 
} 

и Input.txt имеет некоторые значения. Может ли кто-нибудь предложить мне способ получить input.txt после запуска программы.

Например: аргументы

Open a terminal 
compile the code 
Run the code 
---Here it should ask for the file name--- 
+1

йо u отметил это с помощью C++, но ваш код выглядит как чистый C. Используете ли вы C или C++? –

+1

@ DougT. По-видимому, он просто использует библиотеку C. Если он чистый C, он не будет компилироваться, потому что у него нет оператора возврата для основной функции. – texasbruce

ответ

1

командной строки:

int main(int argc, char *argv[]) { 
    std::cout << argv[1] << '\n'; 
} 

или стандартного ввода:

int main() { 
    std::string filename; 
    std::cout << "enter file name: "; 
    std::cin >> filename; 
    std::cout << filename << '\n'; 
} 
+0

Я отредактировал программу следующим образом: std :: string filename; std :: cout << "введите имя файла:"; std :: cin >> filename; std :: cout << имя файла << '\ n'; pf = fopen (имя файла, "r"); –

+0

Я отредактировал мой код, как показано ниже std :: string filename; std :: cout << "введите имя файла:"; std :: cin >> filename; std :: cout << имя файла << '\ n'; pf = fopen (имя файла, "r"); Но я получаю сообщение об ошибке: readfile.cpp: 19: 25: error: невозможно преобразовать 'std :: string {aka std :: basic_string }' to 'const char *' для аргумента '1' to 'FILE * fopen (const char *, const char *) ' –

+0

' Я использовал c_str() ', и он работал –

1

Пример:

#include <fstream> 
    #include <iostream> 

    int main() 
    { 
     std::string filename; 
     cin >> filename; 
     ifstream inFile; 
     inFile.open(filename.append(".txt"); 
     int a; 
     while (inFile) 
     { 
      inFile >> a; 
      cout << a; 
     } 
     return 0; 
    } 
+0

Есть ли способ получить имя файла от пользователя и добавить .txt в pf = fopen (имя файла,« r »); ? –

+0

Я отредактировал его, чтобы сделать это возможным. –

Смежные вопросы