Проблема в том, что у вас много высот и отступов с десятичными значениями. Например, на экранах сетчатки вы увидите промежутки между этими десятичными знаками. Помните, что вы не должны делить пиксели.
Я провел эксперимент, придав родительскому контейнеру фоновый цвет красного цвета, и, как и ожидалось, разрывы стали красными:
[115 ] Может быть, Firefox округляет некоторые из этих значений, но зачем они вообще нужны?
Полагаю, у вас есть какой-то автоматический конструктор сайтов, выполняющий эти странные вычисления?
Повышение обеспечивает basic_directory_iterator
, который предоставляет стандарту C++ приспосабливание входному итератору, который получает доступ к содержанию каталога. Если можно использовать Повышение, то это - по крайней мере, межплатформенный код.
Я думаю, что Вы ищете FindFirstFile()
и FindNextFile()
.
Просто имел беглый взгляд в моем каталоге отрывков. Найденный этим:
vector<CStdString> filenames;
CStdString directoryPath("C:\\foo\\bar\\baz\\*");
WIN32_FIND_DATA FindFileData;
HANDLE hFind = FindFirstFile(directoryPath, &FindFileData);
if (hFind != INVALID_HANDLE_VALUE)
{
do
{
if (FindFileData.dwFileAttributes != FILE_ATTRIBUTE_DIRECTORY)
filenames.push_back(FindFileData.cFileName);
} while (FindNextFile(hFind, &FindFileData));
FindClose(hFind);
}
Это дает Вам вектор со всеми именами файлов в каталоге. Это только работает над Windows, конечно.
<час>JoГЈo Augusto, отмеченный в ответ :
не забывают проверять после FindClose(hFind)
на:
DWORD dwError = GetLastError();
if (dwError != ERROR_NO_MORE_FILES)
{
// Error happened
}
Это особенно важно при сканировании в сети.
Вы могли также использовать POSIX opendir () и readdir () функции. См. эта страница руководства , которая также имеет некоторый код яркого примера.
Я рекомендую, чтобы можно было использовать собственный Win32 FindFirstFile()
и FindNextFile()
функции. Они дают Вам полный контроль над тем, как Вы ищете файлы. Это - простые API C и не твердо использовать.
Другое преимущество состоит в том, что ошибки Win32 не скрыты или совершены тяжелее для достигания из-за слоя библиотеки C/C++.