Вам необходимо принять входные данные как строку , а затем использовать strtod()
для анализа входных данных.
Относительно возвращаемых значений, из справочной страницы :
double strtod(const char *nptr, char **endptr);
Эти функции возвращают преобразованное значение, если оно есть.
Если
endptr
не равно NULL, указатель на символ после последнего символа, использованного в преобразовании, сохраняется в местоположении, указанном вendptr
.Если преобразование не выполняется, возвращается ноль, и значение
blockquote>nptr
сохраняется в местоположении, указанном вendptr
.Приступая к точке обнаружения ошибок, пара моментов:
- Убедитесь, что
errno
установлено на0
до вызова, и оно все еще равно0
. после звонка.- Возвращаемое значение не
HUGE_VAL
.- Содержимое, на которое указывает
*endptr
, не является нулевым и не равноnptr
(т.е. разговор не был предварительно сформирован).Вышеупомянутые проверки, объединенные вместе, обеспечат успешное преобразование.
В вашем случае, последняя точка важна, так как если на входе присутствует недопустимый символ,
*endptr
не будет указывать на ноль, вместо этого он будет содержать адрес этого (первый ) недопустимый символ на входе.
В самом простом Вы просто используете:
form.Cursor = new Cursor(path);
Но существуют перегрузки для загрузки из других источников (неуправляемый указатель, необработанный поток или resx).
Если Вы хотите еще некоторую информацию о том, как создать Ваши собственные ресурсы курсора затем здесь существует хорошее учебное руководство. Необходимо создать файл курсора и встроить его как ресурс в исполняемом файле - легкий в Visual Studio. Это более опрятно и более эффективно, чем загрузка его из отдельного файла. Можно затем загрузить его непосредственно использование конструктора Курсора, который берет имя ресурса.
Сначала добавьте пользовательский курсор к своему проекту затем, это довольно просто:
Cursor myCursor = new Cursor("custom.cur");
Затем просто присвойте его своим средствам управления
someControl.cursor = myCursor
В дополнение к упомянутому выше вы можете сделать следующее:
Mouse.OverrideCursor = Cursors.Arrow;
и курсоры могут быть: AppStarting Стрела ArrowCD Пересекать Рука Помогите Ручка Стрелка вверх или другие.