путать с чтением файлов и хранением в std :: vector - PullRequest
0 голосов
/ 11 апреля 2019

Я должен написать функцию, в которой он получает 2 имени файла в качестве аргументов командной строки (file1 file2), читает в этих файлах и сохраняет в двух std::vector контейнерах.

file1 имеет 4 int значения в каждой строке, представляющие нижнюю точку прямоугольника, а затем верхнюю точку, например, 73 4 113 46, поэтому x y x y.Я должен написать класс для представления прямоугольника, который делает каждый прямоугольник объектом этого класса.

file2 просто содержит список областей, по 1 на строку, в значении int.

Мне нужно использовать C ++ 11 для написания этой функции.

Можетпожалуйста, покажите мне пример того, как реализовать это в int main(int argc, char *argv[ ] )?

Я абсолютный новичок в этом.

Это то, что я имею до сих пор:

#include <fstream> // for file-access
#include <string>
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{ 
    if (argc > 1) {
        cout << "argv[1] = " << argv[1] << endl; 
    } else {
        cout << "No file name entered. Exiting...";
        return -1;
    }
    ifstream infile(argv[1]); //open the file

    if (infile.is_open() && infile.good()) {
        cout << "File is now open!\nContains:\n";
        string line = "";
        while (getline(infile, line)){
            cout << line << '\n';
        }

    } else {
        cout << "Failed to open file..";
    }
    return 0;
}

1 Ответ

0 голосов
/ 11 апреля 2019

Итак, вы хотите запустить вашу Программу, вызвав ifstream и поместив ее в строку, чтобы она могла быть интерпретируемой.

//calls the 2nd line in command line 
std::ifstream file(argv[1]);
//puts file into a string
std::string file1;
file>>file1;

После этого вам придется проработать остальные детали.Вот полезный веб-сайт, который я использовал, когда был noob cpp.

http://www.cplusplus.com/
...