Мне нужно считать все числа из файла в бинарном режиме (мне принципиально важно именно в этом режиме считывать числа) и добавить в ListBox. По непонятной причине у меня дублируется число.
В данном случае я записал цифру 1 РОВНО ОДИН РАЗ и она добавилась 2 раза в ListBox.
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {
int n = 0;
String^g = "";
ifstream d;
d.open("12.dat", ios::binary);
do {
d.read((char*)&n, sizeof(int));
g = System::Convert::ToString(n);
listBox1->Items->Add(n);
} while (!d.eof());
d.close();
}
Дело в том что read устанавливает eof
только после попытки чтения, так что когда вы читаете, то вы должны проверить - а получили ли вы значение вообще? Cдесь можно обойтись вообще без условия, достаточно:
while(true) {
if (read(.., ..))
{ ... }
else
break;
}
В таком случае у вас при первой же проблеме со считыванием произойдет выход из цикла. А уж за пределами можно без труда проверить почему это произошло.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Немножко про условие задачи : Дано N лягушек и бесконечное поле, в каждой лягушки есть свой счастливый порядковый номерЛягушки приходят по очереди...
Имеется такой кодСоздается массив фреймов и массив QLineEdit
Подскажите плз как правильно передать вариативный массив в процедуру печати, если приходит args=(char const (&)[32])