🧙Конкурс сказок!
C++/C++11
(OFF) Subaru_ko (B) 10 апр 2020

прочитать две строки из файла

здрасте ребятки.не кидайтесь тапками.давно не кодила на c++ и не могу решить задачку. ответа на свой вопросик ни где не нашла. вообщем есть задачка создать файлик settings.ini в нем две строчки
weapon=1 и bullet=250. и нужно проверить правильность этих двух строк из файла. а если параметры в settings.ini не верные, то надо чтобы выдавалось оповещение что файл конфигурации настроек поврежден.
вот сам код, но он проверяет только 1 строку из файла а ни две, уже по всякому пробовала но у меня не получается...

#include <iostream>
#include <fstream>
#include <string>

// программа проверяет только первую строку из файла
using namespace std;

int main()
{
// создаем файл конфигурации
ifstream fin("settings.ini");
if(fin)
{
// создаем строчную переменную для записи строки
string weapon;
while(fin >> weapon)
{
if(weapon == "weapon=1")
{
cout << "параметры оружия заданы верно " << endl;
break;
}
cerr << "параметры настроек заданы не верно " << endl;
break;
}
fin.close();
}
else
cerr << "Îøèáêà îòêðûòèå ôàéëà íàñòðîåê " << endl;

system("pause");
return 0;
}
я пробовала проверить две строки. но у меня не получается проверить две строки. ребята помогите пожалуйста и поправьте код, устала уже

Комментарии (5)

переписала программу,могу читать вторую строку, использую ф-цию getline() но не могу переписать, чтобы проверялись две строки одновременно из файла
Баба должна уметь, хорошо готовить и заниматься любовью. :клоун2
-2
Обычно ini-файл лучше распарсить в ассоциативный массив (ключ - значение) или хеш таблицу и сравнивать уже сколько угодно значений. А в вашем случае, строки "weapon=1" и "weapon = 1" будут являться разными строками.
Или просто перебирать строки ini-файла но разбивая их на подстроки, где разделитель "=", удаляя пробелы.
#include <iostream>
#include <fstream>
#include <string>

// программа проверяет только первую строку из файла
using namespace std;

int main()
{
// создаем файл конфигурации
ifstream fin("settings.ini");
if(fin)
{
// создаем строчную переменную для записи строки
string weapon;
bool weaponCorrect = false;
bool bulletCorrect = false;
while(fin >> weapon)
{
if(weapon == "weapon=1")
{
weaponCorrect = true;
}
if(weapon == "bullet=250")
{
bulletCorrect = true;
}
}

fin.close();
if(weaponCorrect && bulletCorrect) {
cout << "параметры оружия заданы верно " << endl;
} else {
cerr << "параметры настроек заданы не верно " << endl;
}
}

system("pause");
return 0;
}
Показать комментарий
Скрыть комментарий
Для добавления комментариев необходимо авторизоваться
C++/C++11
Танки. Стальной легион
Десятки видов техники, тяжелые бои и секретные...
Тема: Светлая | Тёмная
Версия: Mobile | Lite | Touch | Доступно в Google Play