Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
8 / 8 / 2
Регистрация: 14.01.2013
Сообщений: 141

Не работает ввод имени файла через fget и открытие через fopen

19.10.2013, 01:15. Показов 1495. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уже все перепробовал и в гугле пару часов посидел. Но никак не пойму где проблема допустим в этом коде :
C++
1
2
3
4
5
6
7
8
9
10
char filename[1024];
char *p;
FILE * pFile;
while(printf("type name of the file"), fgets(filename, 1024, stdin)){
  if ((p = strchr(filename, '\n')) != NULL)
  *p = '\0';
 
  pFile = fopen(filename, "r");
  if(pFile != NULL) break;
}
Сначала промучился пока не нашел инфу за добавление \n символа в filename при вводе, потом нашел способ, чтобы удалить, который есть в коде, но все ровно ничего не получается. pFile не понятно что содержит при вводе любых названий файлов, которых нету или если ввести те, которые есть, то тоже самое будет. То есть в pFile что-то(отличное от Null) есть, даже при том если ввести любой набор символов. В общем не знаю как уже открыть этот файл... Кстати, такая запись работает : fopen("D:\\1.txt", "r");
Windows 7
Visual C++ 2010
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.10.2013, 01:15
Ответы с готовыми решениями:

Ввод имени файла через клавиатуру
При создании файла в турбо паскале нужно чтобы ввод имени файла (и путь) осуществлял сам пользователь непосредственно через клавиатуру (а...

Builder С++ ХЕ3, не работает открытие файла через FileName
Добрый день. Помогите разобраться. Не могу считать файл ни fsream, ни ifstream. В билдере открываю файл через ActionManager1 - Standart...

Чтение файла через функцию fopen
Здравствуйте! У Меня проблема при чтении файла при помощи функции fopen... В Моей программе Мне нужно сделать следующее: Программа...

8
87 / 86 / 27
Регистрация: 04.10.2012
Сообщений: 355
19.10.2013, 01:26
Складывается впечатление, что fopen перегружена. Потому что, судя по вашему описанию, работает она совсем не так, как должна. Куда ссылается среда программирования, если навести курсор на fopen?
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
19.10.2013, 01:34
У меня открывает файл. А вы название вводите без кавычек и с расширением файла, я надеюсь?
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.10.2013, 01:43
C++
1
2
3
4
5
6
7
8
    char filename[1024];
    FILE * pFile;
    while(printf("type name of the file"), fgets(filename, 1024, stdin))
    {
        filename[strlen(filename) - 1] = '\0';
        pFile = fopen(filename, "r");
        if(pFile != NULL) break;
    }
1
8 / 8 / 2
Регистрация: 14.01.2013
Сообщений: 141
19.10.2013, 01:57  [ТС]
alsav22, Спасибо за вариант с удалением \n, а по поводу другого, то так как у других работает, то решил код скопировать в другой проект и все заработало как нужно и потом создал пустой проект и тоже все ок, а в этом, в котором не работало, то в настройках ничего не менял сто процентов и удалял все лишнее из кода, оставляя только этот фрагмент и все в целом как и в пустом проекте было. А в релиз папке есть только 2 тестовых файла. Даже не знаю что это за аномалия.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.10.2013, 02:00
mzarb, Проект этот выложите, попробую у себя.

Добавлено через 1 минуту
Цитата Сообщение от mzarb Посмотреть сообщение
А в релиз папке есть только 2 тестовых файла.
Путь полный вводите? Если нет, то файлы должны быть в папке проекта, а не в папке релиз.
1
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
19.10.2013, 02:01
Относительный путь к файлам берется от бинарника, либо от папки проекта, как во многих IDE.
1
8 / 8 / 2
Регистрация: 14.01.2013
Сообщений: 141
19.10.2013, 02:18  [ТС]
alsav22, с этим не досмотрел, но путь вводил полный для теста D:\\1.txt . Ладно, заработало и на том хорошо, просто я думал проблема в коде и из-за этого долго пытался понять в чем дело, а коль с кодом все хорошо, то дальше в дебри лезть не вижу смысла.
Ещё раз спасибо за помощь, а то ещё бы пол дня искал ошибки).
0
87 / 86 / 27
Регистрация: 04.10.2012
Сообщений: 355
19.10.2013, 04:15
Если в других проектах все работает, в нерабочем следует искать
C++
1
#define fopen что_то_там
или собственную функцию с именем fopen. Это самая распространенная причина.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.10.2013, 04:15
Помогаю со студенческими работами здесь

НЕ работает ввод через строки через gets()
Помогите с ошибкой:scratch: Не могу понять в чем дело... /* Задана строка символов. Вычислить, сколько раз повторяется наперед...

Как в функции открытия файла fopen() задать путь через ключи
Как в функции открытия файла fopen() задать путь через ключи. Раньше путь задавался так: char...

Как в функции открытия файла fopen() задать путь через ключи
Как в функции открытия файла fopen() задать путь через ключи. Раньше путь задавался так: char...

Открытие ссылки через ввод текста
Здравствуйте, такая задача: Нужно создать программу, в которой вводишь в форму свой текст (ссылку на сайт) нажимаешь на кнопку, и чтоб...

Файлы, ввод имени через командную строку
Столкнулся с такой проблемой, при вводе имени файла через командную строку, он не хочет открываться ни при каких условиях. Может,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru