Junior
Статус: Не в сети Регистрация: 04.05.2006 Откуда: Чайковский.
nickyoz Спасибо, но мне надо чтобы введенная строка запоминалась в какой-либо переменной, именно с объединением строки и нового символа у меня проблема. 13 символ это Enter. Ах да и если можешь скажи как оформить все это функцией т.к. будет использоваться не 1 раз
Advanced member
Статус: Не в сети Регистрация: 09.03.2004 Откуда: Кишинёв
В такой функции по хорошему нужно останавливать ввод(и ожидать энтер) по достижении максимальной длинны строки, сам список разрешённых символов лучше составлять/проверять самому(гибче получится функция), и для красоты и удобства нужно ловить и обрабатывать BackSpace - тремя строчками тут не обойтись.
Advanced member
Статус: Не в сети Регистрация: 09.03.2004 Откуда: Кишинёв
nickyoz мы как буд-то говорим совершенно о разном. Я перечислил некоторые прелести, которые хотел бы видеть у себя к примеру в таких функциях, но из твоих слов следует что это будет автоматом. На последних страницах не было кода реализующего эти самые прелести. Вот к примеру взял последний твой пример(сори за тавтологию) и совсем чуть модифицировал до работоспособности:
После ввода последнего(по длинне) символа функция завершается, бэкспэйс не работает(даже если забыть что вывода нет, с ним тоже самое) . Кстати с '\n' не работает - нужен '\r' .
А по поводу фильтра я несколько о другом говорил: например о вводе только цифр или чего-то в этом роде. Да и многоязыковые консольные программы редкость - всё на английском в основном(что к лучшему).
Member
Статус: Не в сети Регистрация: 01.04.2005 Откуда: Москва-Лубянка
Ужас — только взялся плотно за QT, сразу напоролся на гнуснейший баг:
http://www.trolltech.com/developer/task ... thod=entry не везет мне Интересно, «4.2.2 (Next Patch Release)» — это когда?… ээх… опять придется извращаться… Добавлено спустя 11 часов, 30 минут, 49 секунд Самое ужасное, что я всю ночь угробил, пытаясь понять, почему ничего не работает… чуть с ума не сошел)
Member
Статус: Не в сети Регистрация: 20.12.2002 Откуда: Санкт-Петербург
Здравствуйте. Не могу разобраться с одной фишкой. С выводом обработанных данных после выполнения всех циклов сортировки структуры.. Вроде сначала в табличке было 10 элементов, а на выводе осталось 9.. )
если загнать в компилятор и запустить - проблема будет видна наглядно ) одного отсортированного товара не хватает.. Я уже не знаю, что и думать Плюс еще появляется вечный warning C4244: '=' : conversion from 'double' to 'int', possible loss of data Подставляешь double вместо int в
Код:
int number,day,month,year;
- происходят совершенно страшные вещи.. )
И еще - не завалялось ни у кого простейшей программки для работы с текстовыми файлами? Нужно удалить из *.txt все слова, содержащиеся в заданной строке.
Языком начал заниматься около недели назад, в работе с текстом ничерта не понимаю, да, впрочем, и с остальным-то не лучше.. )
Member
Статус: Не в сети Регистрация: 01.04.2005 Откуда: Москва-Лубянка
О, Барсег)
В Си нумерация элементов массива идет с нуля (нормальный компилятор должен был тебя побить еще за это — «strcpy(pr[10].name,"#10:Beer");»), отсюда все твои проблемы.
Bar3ikk писал(а):
conversion from 'double' to 'int',
fmod возвращает double.
Bar3ikk писал(а):
происходят совершенно страшные вещи.. )
Какие?)
Bar3ikk писал(а):
И еще - не завалялось ни у кого простейшей программки для работы с текстовыми файлами?
Чего-нибудь откопаем) Добавлено спустя 14 минут, 37 секунд
Anoss писал(а):
происходят совершенно страшные вещи.. )
Если ты имеешь в виду косяки при сортировке, то напрямую проверять на равенство числа с плавающей запятой нельзя из-за ошибок округления…
Member
Статус: Не в сети Регистрация: 20.12.2002 Откуда: Санкт-Петербург
Anoss Барсег, он самый, коллега =)
Т.е. надо присваивать значения элементам от 0 до 9?
И то же самое делать в циклах?
Anoss писал(а):
fmod возвращает double.
что он возвращает, я понял.. А вот как это лечить.. )
Какие страшные вещи? Ну.. Неформатированный вывод, что-ли, не знаю, как это еще назвать.. вместо 23.11.1967, например, там сейчас 1074726492. 0.1077018624 ) В паскале это как-то делалось для типа real ... :5:2 и прочее.. тут - темный лес.
Anoss писал(а):
Чего-нибудь откопаем)
Будь добр ) очень нужно) Потом еще одно задание могу предоставить.. xD
Member
Статус: Не в сети Регистрация: 01.04.2005 Откуда: Москва-Лубянка
Bar3ikk писал(а):
Т.е. надо присваивать значения элементам от 0 до 9? И то же самое делать в циклах?
Ага.
Bar3ikk писал(а):
как это лечить
1. Использовать обычный оператор %
Код:
pr[i].number = rand() % 50;
2. Писать «pr[i].number = (int)fmod(rand(),50);», что есть изврат)
Bar3ikk писал(а):
Неформатированный вывод
%d (%i) — это int, для double нужны %f, %e, %g по вкусу… читай справку по printf) Добавлено спустя 6 минут, 29 секунд Хоть бы и вики… http://ru.wikipedia.org/wiki/Printf
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения