Я искал где-нибудь, где мог бы найти такую вещь, верить этому или нет, около 3 месяцев …
И еще мне пришло в голову, что это, наверное, что-то невероятно легкое … Но после многих экспериментов я не добился успеха.
Можно было бы найти это где-то еще, но я также не уверен, как его искать, поэтому я спрашиваю здесь.
Вот что я хочу сделать:
У меня есть такой файл
1 Din 17 M 10 D FFF
2 Dout 12 F 11 F FFF
1 дин
2 Даут
Файл заканчивается здесь.
Я хочу прочитать весь файл в переменные, что я уже делаю, например:
std::ifstream readP("properties.dat");
unsigned short ID;
std::string Name;
unsigned short p2;
char p3;
unsigned short p4;
char gTemp;
std::string fProperty;
while(readP >> ID >> Name >> p2 >> p3 >> p4 >> gTemp >> fProperty);
Теперь я хочу прочитать все, кроме [Свойство] и [Имена], потому что, очевидно, с этими полями в тексте читатель не будет читать, потому что они не читаются из цикла while.
Что было бы хорошим способом сделать это?
Вы должны сделать немного более сложный анализ.
Итак, попробуйте это:
Вы не можете «игнорировать» строки, но вы можете «пропустить» их.
Я бы посоветовал читать последовательно построчно станд :: GetLine тогда пропустите неинтересные вещи.
Обратите внимание, что на самом деле строки не существуют в большинстве файловых систем (по крайней мере, в Posix). Линии просто условно заканчиваются \n
но файл представляет собой последовательность байтов.
Вы должны читать построчно и определять, собираетесь ли вы обрабатывать эту строку.
Вы можете проверить, является ли первый символ [
или нет.
http://www.cplusplus.com/reference/string/string/at/
if (str.at(0) != '[')
{
//Process this line by splitting the string with space ect
}