| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Работа с txt файлом |
| Автор: gromo 6.8.2011, 10:34 | ||||
есть текстовый файл с вот таким содержимым (вместо "..." некий текст):
Мне нужно выбрать значение 0.000000E+00 после РАСШИРЕННАЯ ПЕЧАТЬ. Относит. время (час) =, а также все значения после PsiAvr PsiMax ShAvr ShMax. Пытаюсь сделать вот так:
но не получается. Помогите, пожалуйста, решить эту задачу |
| Автор: borisbn 6.8.2011, 15:18 | ||
ещё бы. fscanf при нахождении %s в форматной строке ждёт, что ему дадут указатель на char в качестве параметра, который нужно заполнять, а он получает... класс CString. Разницу чуешь ? В общем см. в сторону регулярных выражений (хз. есть ли они в MFC, в boost - точно есть) Добавлено через 11 минут и 28 секунд Алгоритм должен быть примерно следующий (псевдокод)
|
| Автор: gromo 6.8.2011, 23:45 |
| borisbn, отличная идея, но раньше с регулярками в С не работал если не трудно помоги, пожалуйста, написать код для моего варианта |
| Автор: feodorv 7.8.2011, 10:09 | ||
| А зачем такие сложности с регулярными выражениями? Почему нельзя заставить работать scanf? Что-то вроде:
Честно говоря, не люблю scanf'ы и обычно разбираю строку ручками. PS Очень неприятная у Вас конструкция с if( scanf && scanf ) |
| Автор: gromo 10.8.2011, 00:43 | ||
Пытаюсь реализовать вот так:
но ничего не получается. В чём проблема? |
| Автор: borisbn 10.8.2011, 08:13 |
| gromo, 1. Где выход из ? 2. зачем это ? 3. fscanf возвращает количество переменных, которое она заполнила, а не true/false. Т.е., если заполнена даже одна переменная (а не все), то твоя конструкция if ( fscanf(...) ) отработает... а не должна. 4. (и самое главное) - не компилируется ? - компилируется, запускается и вылетает ? - запускается, не вылетает, но работает не так, как задумано ? кста, если последний вариант, то для этого существует отладчик... и ещё: тебе feodorv дал рабочий вариант, который нужно всего чуть-чуть допилить до твеоих нужд ( заменить ... на то, что там должно быть и реализовать ф-цию addLine ). Чего не юзаешь ? |