Пользовательский каталог входных файлов с пробелами?

-6

У меня есть простой код, который просит пользователя ввести папку для работы программы.

    char MasterDirectory [50];
cout << "Please enter the directory containing the MP3 files you wish to have organised. " << endl;
cin >> MasterDirectory;

GetFileListing(MasterDirectory, "*.mp3");

Однако программа работает неправильно, если входной каталог содержит пробел. Извините за вопрос новобранец, но как я могу заключить переменную "MasterDirectory" в кавычки для GetFileListing?

спросил(а) 2021-01-25T15:16:27+03:00 4 месяца, 4 недели назад
1
Решение
109

Вы должны использовать std :: getline, чтобы прочитать полную строку с пробелами;

могу ли я заключить переменную "MasterDirectory" в кавычки?

Просто добавьте их в то, что вы читаете (я предлагаю использовать std :: string для гибкости):

std::string fileName;
std::cout << "Please enter the directory containing the
MP3 files you wish to have organised. " << endl;
std::getline( std::cin, fileName);
GetFileListing( "\"" + fileName + "\"", "*.mp3");

http://ideone.com/Lmi149

ответил(а) 2021-01-25T15:16:27+03:00 4 месяца, 4 недели назад
45

Лучшее использование

cin.getline(MasterDirectory, sizeof(MasterDirectory));

ответил(а) 2021-01-25T15:16:27+03:00 4 месяца, 4 недели назад
45

Вы должны использовать cin.getline(MasterDirectory, 50);

ответил(а) 2021-01-25T15:16:27+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема