Witam, mam następujący kod:
(dla przyspieszenia powiem, że aktualne != komenda oznacza, ze pobrano znak, (litere lub liczbe))
#include <bits/stdc++.h>
using namespace std;
int main()
{
fstream wejscie, wyjscie;
wejscie.open("przyklad.txt");
wyjscie.open("wyjscie_przyklad.txt");
string napis;
string x, aktualne = "komenda";
while(wejscie>>x)
{
cout<<"x: "<<x<<endl;
if(aktualne != "komenda")
{
cout<<"pobralismy znak"<<endl;
aktualne = "komenda";
if(x == "DOPISZ")
{
cout<<"dopisalismy "<<x<<endl;
napis += x;
cout<<"Nowy napis: "<<napis<<endl;
}
else if(x == "ZMIEN")
{
napis[napis.length() - 1] = x[0];
}
else if(x == "USUN")
{
napis.pop_back();
}
else if(x == "PRZESUN")
{
if(x == "Z")
{
x = "A";
}
else
{
x[0] += 1;
}
napis += x;
}
cout<<"po pobraniu"<<endl;
}
else
{
aktualne = "znak";
cout<<"pobralismy komende"<<endl;
}
}
cout<<"Napis: "<<napis<<endl;
cout<<"Dlugosc ciagu: "<<napis.length();
wejscie.close();
wyjscie.close();
return 0;
}
a plik wejscie ("przyklad.txt") wyglada tak:
DOPISZ Z
DOPISZ U
USUN 1
DOPISZ L
DOPISZ A
PRZESUN Z
DOPISZ U
PRZESUN U
ZMIEN M
PRZESUN M
DOPISZ N
USUN 1
DOPISZ T
DOPISZ U
DOPISZ R
DOPISZ H
DOPISZ N
PRZESUN H
DOPISZ V
ZMIEN G
natomiast żadna z instrukcji warunkowych "if" nie działa. O co chodzi? (zadanie maturalne matura 2021 maj, zad. 4.1)