C++/C++11 C++/C++11
здрасте ребятки.не кидайтесь тапками.давно не кодила на c++ и не могу решить задачку. ответа на свой вопросик ни где не нашла. вообщем есть задачка создать файлик settings.ini в нем две строчки
weapon=1 и bullet=250. и нужно проверить правильность этих двух строк из файла. а если параметры в settings.ini не верные, то надо чтобы выдавалось оповещение что файл конфигурации настроек поврежден.
вот сам код, но он проверяет только 1 строку из файла а ни две, уже по всякому пробовала но у меня не получается...
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;
}
я пробовала проверить две строки. но у меня не получается проверить две строки. ребята помогите пожалуйста и поправьте код, устала уже 0 0 0
Комментарии (5)
Обычно ini-файл лучше распарсить в ассоциативный массив (ключ - значение) или хеш таблицу и сравнивать уже сколько угодно значений. А в вашем случае, строки "weapon=1" и "weapon = 1" будут являться разными строками.
Или просто перебирать строки ini-файла но разбивая их на подстроки, где разделитель "=", удаляя пробелы.
Или просто перебирать строки 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;
}
Для добавления комментариев необходимо авторизоваться
Танки. Стальной легион
Десятки видов техники, тяжелые бои и секретные...