char filePath[200];
printf("Enter filepath: \n");
fgets(filePath, 200, stdin);
f = fopen(filePath, "r");
while(!feof(f)) // crashed on this line
{
}
Я не могу почему-то заставить это работать. Пожалуйста, может кто-нибудь указать, что я делаю неправильно.Динамический путь файла fopen в C
Не могли бы вы указать правильный способ написания кода для открытия пути к файлу, указанного пользователем через командную строку?
Спасибо, Freddy
Плохой совет - никогда не использовать 'scanf()' для ввода пользователем. –
Это смертельно опасно, если вы не добавите ширину поля и не подвержены ошибкам даже тогда, когда вам нужно вручную сохранить ширину поля и размер буфера в синхронизации (вы не можете использовать 'sizeof'). –
@Nikolai N Fetissov: 'scanf' с набором для сканирования * может * быть в порядке, но в этом случае он пропустил важный момент: вы должны указать максимальный размер буфера (то, что он сейчас имеет в действительности, эквивалентно 'gets'). Также обратите внимание, что со сканированием вы делаете * не * нужно «s» после закрывающей скобки, как он показывает выше. –