Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322

Открыть новую тему     Написать ответ в эту тему

Crazy_Shrike



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вопросы по программированию на C/С++

 
  • Справочники, книги
  • Выбор IDE (среды программирования)
     
    Постарайтесь дать как можно больше информации о возникшей проблеме - это в конце концов в ваших же интересах чтобы вам помогли.

    Решения конкретных задач собираются и обсуждаются в теме Задачи по C/С++ .

    Прежде чем просить помощи в задании...
    Если позарез надо и вы даже готовы заплатить

    Как правильно задавать вопросы, если вы хотите получить ответ.

    Полезные ссылки:
    C++(eng)

  • Всего записей: 241 | Зарегистр. 25-03-2004 | Отправлено: 13:37 06-05-2004 | Исправлено: AZJIO, 19:45 12-05-2014
    rain87



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    CrackMe
    Zyava
    Цитата:
    Чтобы макрос _T() не находило
    этот макрос объявлен в tchar.h. инклюдь его и найдет
     
    Добавлено:
    а вообще - надо пойти в свойства проекта и на вкладке General вместо Unicode поставить Multi-Byte, тогда можно будет не парить мозг такими заворотами. лично я тоже долго матюкался на 2005, пока не дошел до этого

    Всего записей: 1744 | Зарегистр. 21-06-2006 | Отправлено: 13:40 28-02-2007
    veronica b



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Long2010
    Zyava, судя по __imp__timeGetTime@0 это Микрософт Визуал Студио. Проверь по хелпу, в какой библиотеке находится функция timeGetTime() и при линковке ее включи!

    Всего записей: 504 | Зарегистр. 04-12-2006 | Отправлено: 14:31 28-02-2007
    CrackMe

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не, все по дефолту,никаких настроек не менял...
    rain87
    Добавил то что ты сказал, теперь такая херня:

    Цитата:
    evil.cpp
    d:\coding\projects\evil\evil\evil.cpp(18) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
            c:\program files\microsoft visual studio 8\vc\include\stdio.h(295) : see declaration of 'scanf'
    d:\coding\projects\evil\evil\evil.cpp(37) : error C3861: 'getch': identifier not found

    Всего записей: 711 | Зарегистр. 18-07-2006 | Отправлено: 15:22 28-02-2007
    distance

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Long2010

    Цитата:
    У меня при использовании функции timeGetTime() при сборке выдает ошибку:  
    error LNK2001: unresolved external symbol __imp__timeGetTime@0

     
    добавляешь это в свою программу, после директив #include:
    #pragma comment(lib, "Winmm.lib")
    или в свойствах линковки указываешь, что нужно подключить эту библиотеку. всё.

    Всего записей: 878 | Зарегистр. 28-03-2004 | Отправлено: 15:51 28-02-2007 | Исправлено: distance, 15:58 28-02-2007
    rain87



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    CrackMe
    ну так вот именно. в 2005 оно по дефолту unicode, а в ранних - multi-byte
    Цитата:
    d:\coding\projects\evil\evil\evil.cpp(18) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.          c:\program files\microsoft visual studio 8\vc\include\stdio.h(295) : see declaration of 'scanf'
    довольно понятно написано, это просто ворнинг. юзай scanf_s вместо scanf
    Цитата:
    d:\coding\projects\evil\evil\evil.cpp(37) : error C3861: 'getch': identifier not found
    #include <conio.h>

    Всего записей: 1744 | Зарегистр. 21-06-2006 | Отправлено: 18:54 28-02-2007
    CrackMe

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    rain87
    Вот теперь заработало! Удручает только то, столько гемороя из за простого скрипта...может есть у кого книжки именно под ВС2005?

    Всего записей: 711 | Зарегистр. 18-07-2006 | Отправлено: 19:32 28-02-2007
    Zyava



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    veronica b  
    Я имел ввиду версию студии...

    Цитата:
    CrackMe

    На английском:
    Ivor Horton's Beginning Visual C++ 2005
    Wrox | ISBN: 0764571974 | February 20, 2006 | 1224 pages | PDF
    http://www.avaxhome.ru/ebooks/0764571974.html - описание
    http://www.ftp2share.com/file/22391/0764571974.rar.html - скачать
    8 мб
     
    Microsoft Visual C++ 2005 Express Edition Programming for the Absolute Beginner
    Course Technology PTR | ISBN 159200816X | CHM | 24 Mb | 408 Pages
    http://www.avaxhome.ru/ebooks/ms_vc_ee_ab.html - описание
    http://rapidshare.de/files/22898098/vcpeeab.rar.html - скачать
     
    на русском не встречал пока в электронном виде

    Всего записей: 324 | Зарегистр. 04-05-2006 | Отправлено: 22:27 28-02-2007
    CrackMe

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zyava
    Спасибо! Посмотрим, смогу я хоть что-нибудь понять на английском...
     
    Добавлено:

    Цитата:
    http://rapidshare.de/files/22898098/vcpeeab.rar.html - скачать  

    сдох линк

    Всего записей: 711 | Зарегистр. 18-07-2006 | Отправлено: 01:03 01-03-2007
    Zyava



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

    Цитата:
    сдох линк

    Все претензии в Avaxhome , кстати еще в теме 0-day мелькала книга по VC 2005, но тоже на английском, а вообще спроси здесь: http://forum.ru-board.com/topic.cgi?forum=93&bm=1&topic=0480#1 , может кто-то где-то видел на русском или сам сканировал...

    Всего записей: 324 | Зарегистр. 04-05-2006 | Отправлено: 02:02 01-03-2007 | Исправлено: Zyava, 02:03 01-03-2007
    CrackMe

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zyava
    Нет что ты, к тебе никаких притензий, спасибо, спрошу...

    Всего записей: 711 | Зарегистр. 18-07-2006 | Отправлено: 13:23 01-03-2007
    Kamir

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите, плиз, человеку который только-только начал изучать С++.
     
    дан массив вещественных чисел
     float n[5];
     
    вводим массив
     for(i=0;i<5;i++)
       cin >> n[i];
     
    вопрос: какие методы есть в с++ чтобы обрабатывать ошибки ввода? например, на ввод строки в консоли выводилось сообщение типа "введите вещественное число". препод намекает про ios, но я не знаю с чем его едят. наверняка методом много. заранее спасибо.

    Всего записей: 9 | Зарегистр. 06-08-2006 | Отправлено: 15:25 01-03-2007
    Zyava



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Kamir
     
    А обязательно писать с использованием cin - cout, старые добрые printf и scanf нельзя использовать? Там все намного более прозрачно
     
    Про cin-cout скопировал из учебника - почитай:
    Подробнее...
     

    Всего записей: 324 | Зарегистр. 04-05-2006 | Отправлено: 17:10 01-03-2007 | Исправлено: Zyava, 17:21 01-03-2007
    Qraizer



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

    Цитата:
    А обязательно писать с использованием cin - cout, старые добрые printf и scanf нельзя использовать? Там все намного более прозрачно
    Это ещё почему? Как раз если хочешь запариться разбирать правила форматированных эскейп-последовательностей, то самое то.
    Kamir
    Ошибки ты можешь и так получить - cin.good(), cin.fail() итп. При чём тут std::ios? Он отвечает за флаги форматировани, хранение состояния и всё такое. Что конкретно надо-то? Строка "123.456its the invalid input" является ошибкой или нет? Ибо cin.fail() вернёт истину, но в n[i] будет-таки введено 123.456. Определи конкретнее, что такое ошибка в твоём случае.

    Всего записей: 613 | Зарегистр. 08-08-2006 | Отправлено: 20:02 01-03-2007
    Kamir

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Qraizer

    Цитата:
    Строка "123.456its the invalid input" является ошибкой или нет? Ибо cin.fail() вернёт истину, но в n[i] будет-таки введено 123.456.

    Если эта строка будет "первым элементом" массива то да n[0]=123.456. Однако, дальше нельзя будет произвести запись остальных элементов.

    Цитата:
    Определи конкретнее, что такое ошибка в твоём случае.

    Задача какая. Надо чтоб на любые воздействия пользователя прога не висла и корректно работала. если невозможно записать вещественное число (т.к. на входе имеем строку) то возникает исключительная ситуация которую мы должны перехватить, вывести сообщение, и как не вчем не бывало продолжить выполнение программы с той точни на которой возникло исключени. я то думал в этом случае надо использовать try cautc (но опять же не знаю как правильно использовать в контексте решаемой задачи). либо каким то другим приемлимым образом.  
    Предлагается cin.good(), cin.fail(). но как использовать? можно пример? С языком общаюсь второй день так что не пинайте сильно, если спрашиваю элементарные вещи.

    Всего записей: 9 | Зарегистр. 06-08-2006 | Отправлено: 20:53 01-03-2007
    Labutin



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Kamir
    Посмотри тут: http://forum.ru-board.com/topic.cgi?forum=33&topic=3174&start=1140#11
    Я уже поднимал подобный вопрос. Там есть пример.

    Всего записей: 935 | Зарегистр. 31-07-2001 | Отправлено: 23:08 01-03-2007 | Исправлено: Labutin, 23:09 01-03-2007
    Zyava



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Это ещё почему?
     
    Писать меньше и запоминать километровые манипуляторы и т.д. не надо Дело вкуса конечно...

    Всего записей: 324 | Зарегистр. 04-05-2006 | Отправлено: 00:08 02-03-2007
    veronica b



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Qraizer

    Цитата:
    Это ещё почему? Как раз если хочешь запариться разбирать правила форматированных эскейп-последовательностей, то самое то.  

    Господа, речь идет о студенческом задании, по моему, использование scanf для студента более легче и ему проще все это объяснить потом преподователю. И, вообще, какой язык учат - С или С++?

    Всего записей: 504 | Зарегистр. 04-12-2006 | Отправлено: 09:22 02-03-2007
    Qraizer



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Zyava
    veronica b
    Вот это новости. Конечно, fork вбить проще, чем CreateThread, или там mbstowcs вместо MultiByteToWideChar, но попробуй интуитивно запомнить первый и второй варианты. Если первое запомнить проще, то наверное у меня какая-то неправильная память. C-стиль форматирования плох по меньшей мере тем, что он типонебезопасный. Попробуйте объяснить изучающему язык студенту почему вывод double-ов производится %f, а ввод - %lf, причём очень важно, что не %Lf. А напутав что-нибудь в спецификаторах, забрасывают форумы вопросами, почему у них ввод/вывод корявый или неправильный. Пусть лучше компилятор пожалуется на несоответствие типов, например, чем потом мучить отладчик и штудировать документацию. Как раз наоборот, получив определённый опыт в программировании, можно и за C-спецификаторы засесть. Но наоборот - увольте: кроме головной боли и неприязни к языку ничего студенты не получат. За исключением некоторого количества ненормальных личностей, нас с вами, например .
    Kamir

    Код:
    for(i=0;i<5;i++)
       for(;;)
       {
          cin >> n[i];
          if (cin.good() && !cin.eof()) break;     // если не было ошибок или введённая строка закончилась
          cout << "Введите действительное число.";
          cin.clear();     // очистить состояние ошибки
          cin.ignore(256, '\n');     // пропустить до конца строки максимум 256 символов
        }
    Что-то типа того. Максимум в "256 символов" подбери по вкусу. Я бы написал иначе, без завязки на максимум, но препод не поверит в такое твоё решение.

    Всего записей: 613 | Зарегистр. 08-08-2006 | Отправлено: 15:31 02-03-2007 | Исправлено: Qraizer, 15:34 02-03-2007
    veronica b



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Qraizer

    Цитата:
    C-стиль форматирования плох по меньшей мере тем, что он типонебезопасный. Попробуйте объяснить изучающему язык студенту почему вывод double-ов производится %f, а ввод - %lf, причём очень важно, что не %Lf. А напутав что-нибудь в спецификаторах, забрасывают форумы вопросами, почему у них ввод/вывод корявый или неправильный.  

    В общем, язык Си для программистов, а не для тех, кто такое усвоить не может. Есть критерий для программирования на Си, разобрался ли ты с указателями. Если нет, то тут и строка форматирования не поможет. Кстати, а форматирование на Фортране, оно не проще, но никто не жаловался.

    Всего записей: 504 | Зарегистр. 04-12-2006 | Отправлено: 20:18 02-03-2007
    Qraizer



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Ну, если обучение идёт по "бразильской" системе, то почему бы и нет. Но ИМХО это не тот метод. Для C++ в частности. В C++ делается упор на устранение человеческого фактора, а не на его провоцирование для естественного отбора. В C++ и так хватает факторов, способствующих этому отбору, и кто его не проходит, тот так и остаётся C-программером.
    Фортран давно уж был бы мёртв (ещё бы - первый в мире (но не в истории) язык высокого уровня; в своё время это было не просто достижением - это было как манна небесная, куда уж тут жаловаться), и его потуги на выживание успешны исключительно благодаря его популярности и ориентированности на FORмульную TRANляцию в прошлом. Из-за чего для него была создана богатейшая библиотека программ и подпрограмм, портировать которую дороже, чем поддерживать язык. Так что это не критерий стравнения, тем более, что "жаловались", и ещё как. Правда уже после Algol, Pascal, Basic, PL/1, COBOL итп. Я сам после программируемых калькуляторов программировать начал именно с этого языка.

    Всего записей: 613 | Зарегистр. 08-08-2006 | Отправлено: 21:02 02-03-2007
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru