Plik w standardowym strumieniu wejścia - pomoc

0

Witam.
Mam takie zadanie:

"Napisz program, wykorzystujący nieskończoną pętlę while do wczytywania słów ze standardowego wejścia (cin) do łańcucha (string). Będzie to nieskończona pętla while, którą potem przerwiesz (i opuścisz program) za pomoca instrukcji break. Przepisz każdemu przeczytanemu słowu wartość całkowitą używając do tego sekwencji instrukcji if, a następnie zastosuj instrukcję switch, wykorzystującą tę wartość w charakterze selektora. W każdym przypadku case, wydrukuje coś sensownego. Musisz dokonać wyboru interesujacych słow i ich znaczenia a takze zdecydowac jakie slowo bedzie poleceniem zakonczenia programu. Przetestuj program, przekierowujac na jego standardowe wejscie plik.

Rozwiązałem całe zadanie tak:

#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    string input;
    int wart;

    while(true)
    {
            cout << "Wpisz slowo: ";
            cin >> input;
        if(input=="A")
        wart = 1;
        if(input=="K")
        wart = 2;
        if(input=="exit")
        wart = 3;
        //przekierowanie pliku na standardowy strumien wejscia
        if(input=="file")
        {

        ifstream in("example.txt");
         while(getline(in,input));
            if("example.txt")
            wart = 4;
        }

        switch(wart)
        {
            case 1:
            cout << "Wpisales A" << endl;
            continue;
            case 2:
            cout << "Wpisales K" << endl;
            continue;
            case 3:
            cout << "Wyjscie...";
            break; //case 3
            case 4:
            cout << "Przekierowano plik!" << endl;
            continue;
            default:
            cout << "Wrong!" << endl;
            continue;


        }
        break;

    }//while
}
 

No i program działa... kompiluje się bez ostrzeżeń jednak nie jestem pewny co do tego przekierowania pliku.
Bądźcie wyrozumiali i powiedzcie jak to mam zmienić... :)
Pozdrawiam :)

0

Ee, chodziło raczej o coś takiego:

./twoj_program < plik

gdzie plik to plik z wejściem.

0

No ale gdzie ja mam takie coś dać?
Przez konsole jakoś czy coś? (Korzystam z linuxa)

0

Zwyczajnie wpisać w konsoli, to zwykłe uruchomienie programu z przekierowaniem wejścia.

0

Szczerze mówiąc... tak przyznam się - nie wiem jak. Nigdy tego nie robiłem. Dasz mi jakiś mini tutorial?:) Nie wiem co się ze mną dzieje ostatnio...
a poza tym program jest ok?

0
  1. Tworzysz plik o nazwie dupa.
  2. Wpisujesz do niego zawartość:
A
K
U
exit
A
  1. Testujesz w konsoli:
$ ./twoj_program < dupa
  1. Oczekujesz wyjścia:
Wpisales A
Wpisales K
Wrong!
Wyjscie...
  1. Wyjście poprawne? No to działa.

Sam program prawie ok, tylko wywal zawartość tego if (input == "file") i ustalaj jakąś domyślną wartość wart przed ifami:

wart = 0;
if(input=="A")
wart = 1;
if(input=="K")
wart = 2;
if(input=="exit")
wart = 3;

Albo lepiej:

if (input == "A") {
    wart = 1;
} else if (input == "K") {
    wart = 2;
} else if (input == "exit") {
    wart = 3;
} else {
    wart = 0;
}
0

No dobra niby działa:D
cały czas wrong wyświetla :D

0

DOBRA dziala..nie widzialem twojego postu ;) dzieki! :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1