@starkdm

С++ В чём ошибка?

Консольное приложение WIN32. VS 2013 с обновлением 5.
В чём ошибка (должен выводить все пути к файлам в заданной директории и её подпапках):
vector<string> GetFiles(string strSearchPath, string strPattern, bool AllElements)
{
	return vector<string>();
}
void main()
{
        string strSearchPath("D:\\FOLD");
	string strPattern("*.*");
	vector<string> v_strSEARCH = GetFiles(strSearchPath, strPattern, TRUE);
	cout << sizeof(v_strSEARCH) << endl;
	for each (string strFILE in v_strSEARCH)
	{
		cout << "Файл " << v_strFILE << endl;
        }
}
  • Вопрос задан
  • 311 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Alexander1705
Не используйте оператор for each, он не является частью стандарта языка C++ и поддерживается только в VisualStudio.
Используйте range-based цикл, который появился с версией C++11:
for (string strFILE : v_strSEARCH)
{
    cout << "Файл " << v_strFILE << endl;
}

А ошибка в том, что вы возвращаете пустой вектор:
return vector<string>();

Upd.
Судя по истории ваших вопросов на тостере, добавлю:
Если вы называете функцию GetFiles, компилятор на это никак не реагирует, он не будет сам возвращать вам список файлов. Имя функции задаётся только для того, чтоб программисту было понятно, что она делает. Внутри функции вам самим нужно написать алгоритм, который найдёт этот список, а после возвратит его, или же вызывать другую, заранее определённую, функцию.
Используйте, например WinApi
Ответ написан
@dmitryKovalskiy
программист средней руки
return vector<string>(); вам ничего как бы не должен в указанной реализации.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы