Перенаправление ввода / вывода в C ++ - PullRequest
0 голосов
/ 07 апреля 2020

Я написал программу, которая берет свои данные из файла (используя ifstream), использует набор std :: getline для извлечения данных и манипулирования ими.

Я хочу использовать перенаправление ввода / вывода, чтобы что эти строки можно использовать с помощью std :: cin (как будто кто-то печатает эту информацию). Я посмотрел это, но я не совсем понял, как я буду реализовывать это с помощью программы сообщества Visual Studio. Любая помощь с благодарностью.

Ответы [ 2 ]

1 голос
/ 07 апреля 2020

Я бы предложил вам использовать stringstream для этого:

#include <iostream>
#include <sstream>

int main() {
    string z = "100";
    stringstream a("");
    a << z;
    int x;
    a >> z; // Extracts data; a works like cin would have if it were used to input data
    cout << z;
    return 0;
}
0 голосов
/ 08 апреля 2020

Я нашел решение моего вопроса!

Я просто изменил следующую строку кода с:

std::ifstream datastream(text file location);
while (std::getline(datastream, output_str)) {
.
stuff...
.
}

На:

while (std::cin(datastream, output_str));

После компиляции мой код без ошибок и получил мой ./a.out, я набрал в моем компиляторе:

./a.out < text file

И это в значительной степени начало вводить содержимое файла в std :: cin, как будто кто-то его печатал.

...