Witam!
Obecnie pracuję z tematem przekierowań strumieni dla wprowadzania danych z pliku .txt. Czy istnieje możliwość przekierowania strumienia w taki sposob by wszystkie dane zostały pobrane z pliku? Wyjaśnienie, plik txt zawiera określoną liczbę linii. Każda z linii zawiera dane potrzebne do jednokrotnego wykonania programu. Chciałbym by program był wykonywany aż do momentu końca pliku. Czy jest możliwe wykonanie takiego przekierowania? ( jednym z rozwiązań jest na samym początku pliku liczby wykonań, lecz wolałbym uniknąć tego) Dziękuję za pomoc!
0
0
rolniczy napisał(a):
Witam!
Każda z linii zawiera dane potrzebne do jednokrotnego wykonania programu. Chciałbym by program był wykonywany aż do momentu końca pliku.
Czy aby pierwsze zdanie nie przeczy drugiemu?
Załóżmy, że plik zadania.txt
zawiera:
zadanie nr1
zadanie nr2
zadanie nr3
program wykonujący zadanie main.cpp
:
#include <iostream>
#include <string>
int main() {
string zadanie;
std::getline(std::cin, zadanie); // pobierz zadanie ze standardowego wejścia
std::cout << "wykonuje: " << zadanie << std::endl;
return 0;
}
polecenie w bash
wielokrotnego wywołania programu main
dla każdej linii w pliku zadania.txt
:
$ < zadania.txt xargs -I{} bash -c "echo {} | ./main"
wynik:
wykonuje: zadanie nr1
wykonuje: zadanie nr2
wykonuje: zadanie nr3
Czy o takie zachowanie ci chodziło?