Как автоматически открыть входной файл в C ++? - PullRequest
2 голосов
/ 21 марта 2011

В моей программе, написанной на C ++, я открываю файл следующим образом:

std::ifstream file("testfile.txt");

Это использование может обрабатывать сценарий, в котором входной файл имеет фиксированное имя «testfile.txt». Я хотел бы знать, как разрешить пользователю вводить имя файла, например, «userA.txt», и программа автоматически открывает этот файл «userA.txt».

Ответы [ 2 ]

7 голосов
/ 21 марта 2011

Используйте переменную.Я предлагаю найти хорошую вводную книгу , если вы не знаете, чем они еще являются.

#include <iostream>
#include <string>

// ...

std::string filename;    // This is a variable of type std::string which holds a series of characters in memory

std::cin >> filename;    // Read in the filename from the console

std::ifstream file(filename.c_str());    // c_str() gets a C-style representation of the string (which is what the std::ifstream constructor is expecting)

Если в имени файла могут быть пробелы, то cin >> (что останавливаетсяввод в первый пробел, а также перевод строки) не будет сокращать его.Вместо этого вы можете использовать getline():

getline(cin, filename);    // Reads a line of input from the console into the filename variable
3 голосов
/ 21 марта 2011

Вы можете получить аргументы командной строки с argc и argv.

#include <fstream>

int main(int argc, char* argv[])
{
    // argv[0] is the path to your executable.
    if(argc < 2) return 0 ;

    // argv[1] is the first command line option.
    std::ifstream file(argv[1]);

    // You can process file here.
}

Использование командной строки будет:

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