C++ - Miért veszíti el az elágazásban felvett értékét egy változó?
Sziasztok!
Találkoztam ezzel a problémával:
string str, allat;
cin >> str;
if (str == "kutya") allat = "zebra";
else allat = "macska";
cout << allat;
(csak egy példa)
...és semmit sem ír.
Hogyan lehetne áthidalni ezt a hibát?
A válaszokat előre is köszönöm!
cin >> keres;
if (in_all.is_open())
{
while (getline(in_all, line))
{
if (line[0] == '2') date_ = line;
if (line[1] == ':')
{
for (i = 0; i < (line.length() - keres.length() - 1); i++) {
beg = i;
end = keres.length();
if (end < 0 || end > line.length()) break;
sub = line.substr(beg, end);
if (boost::iequals(keres, sub) && line != prev_keres) {
prev_keres = line;
cout << "\n" << date_ << " " << line << endl;
}
}
}
}
}else
cout << " - Unable to open file\n";
De itt igen
if (line[0] == '2') date_ = line; <-- ha itt ki is íratom a "date" értékelt, akkor rendben ki is írogatja,
Viszont a másik elágazásban már nincs meg az értéke
Megoldódott. Több dolgot is átírtam, valamelyik bejött...
Leírom, ha megtalálom
Lehet, az volt az, hogy előre értéket adtam a date-nek:
string date = "2222-22-22"; , ahol az érték persze megváltozott..
Az értékadás az.
deklarálásnál kell neki értéket is adni, aztán jó.
Valaki elmagyarázza, mi ennek az oka?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!