У меня проблема в следующем коде:
int main()
{
string store;
ofstream ip, ipa;
bool ai = true;
string catch, container, contain;
ifstream datbot("database.txt"), datbrot("datafloor.txt");
string chats, train;
int loop = 0, c = 0;
cout << "->>hi! I AM ALPHA" << endl;
while (datbot.good()) //first loop
{
while (ai) //second loop
{
loop = 0;
c++;
cout << c << ">>";
// USER INPUT
getline(cin, chats);
// DATABASE LOOP CONTROL
unsigned int count = 0;
// DATAFLOOR LOOP CONTROL
unsigned int number = 0;
while (loop == 0) // third loop
{
loop++;
cout << 'i' << endl;
while (getline(datbot, container)) // final loop
{
// cout << "pr" << endl;
count++;
catch = container;
// JUDGMENT TIME
if (catch == chats)
{
//LOOP OF HELL
while (getline(datbrot, contain))
{
num++;
// JUDGMENT TIME
if (number == count)
cout << "->>" << contain << endl;
}
}
}
}
}
}
}
Как вы можете видеть из моего кода, существует четыре основных цикла while; последний l oop - это l oop для сбора по одной строке за раз, и, во-первых, он работает отлично. Однако это правда и доступно только при первом запуске. Затем он пропускается, пока программа еще работает, а другие циклы продолжают цикл.
Таким образом, мой вопрос таков: «Есть ли способ сохранить доступ к l oop, когда он будет достигнут третьим l oop, пока программа еще работает, или я могу оставить l oop ложь после того, как она вернула истину? "