За последние 24 часа нас посетили 18383 программиста и 1634 робота. Сейчас ищут 977 программистов ...

С++

Тема в разделе "Прочее", создана пользователем Mr.M.I.T., 24 сен 2009.

  1. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    2 день учу сишник

    пара вопросов:
    1. Есть ли в сишнике текстовын ключи у массивов?
    2. Как вернуть в функцией массив, в книге предлогается использовать ссылки, считаю это бредом
    3. Как сделать чтоб прога не вылетала если пользователь ввёл значение отличное по типу от типа переменной

    Зы. Пока сижу на главе про работу с консолью (oistream.h)
     
  2. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Нет, но есть решение на основе STL (map)

    Никак.
    Использовать указатели на массив, а если разобраться вплотную с массивами и указателями, то вообще всё станет просто.

    Входной поток возвращает строку, конвертировать надо в нужный тип (cstdlib).
    Полезно разобраться будет также с таблицами символов (char *pointer)
     
  3. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    спс
    ещё вопрос, как работать с кирилицей
    в книге предлогается использовать отдельный тип, но для переменных, а на вывод это ес-но не работает
     
  4. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Одно из решений - UTF-8 (тип wchar_t).
    В программировании под Windows следует программировать только с использованием UTF-8, потому что любой тип будет всё равно преобразован к UTF-8.

    В Visual Studio есть функция аналогичная РНР - setlocale:

    Код (Text):
    1. setlocale (LC_ALL,".1251");
    2. cout << "Кириллица"
     
  5. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    А как хочешь, так и работай. Все-равно работаешь на уровне хранения некоторых чисел, которые коды символов. В какой кодировке выводить — зависит от того, куда выводишь.
     
  6. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Там UTF-16, а не UTF-8
     
  7. SDR

    SDR Активный пользователь

    С нами с:
    22 сен 2009
    Сообщения:
    244
    Симпатии:
    0
    Mr.M.I.T.
    в C++ нет даже вообще строк и массивов. это string, vector - и пр. "блатные" типы - это просто классы (ну и шаблоны) стандартной либы STL

    я бы на твоём месте начал бы с нативного ANSI C без плюсов, чтобы понять.. а дальше бы уже двигался к плюсовому ООП
     
  8. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    а ты думал что в сказку попал? =)

    оборачивай код в блок try-except и там уже обрабатывай эксепшн
     
  9. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    начни с чистого си. Все вопросы показывают, что ты не понял сути.
    Си все это НЕ делает сам.
    и НЕ для этого сделан.

    В том числе и поэтому существует пхп.
     
  10. +Sten+

    +Sten+ Активный пользователь

    С нами с:
    27 авг 2007
    Сообщения:
    978
    Симпатии:
    0
    По какой книге учишь?
     
  11. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Кернигана и Ричи в зубы :)
    Плюс по указателям есть отличный, по-моему, туториал: http://home.netcom.com/~tjensen/ptr/cpoint.htm
     
  12. SDR

    SDR Активный пользователь

    С нами с:
    22 сен 2009
    Сообщения:
    244
    Симпатии:
    0
    вообще конечно с php переходить на C наверно тяжело
    намного лучше, когда наобарот, по возрастающей

    был бы я министром образования, я бы стъюдентов не с Pascal'a бы учить начинал, а хотя бы с нескольких лекций по основам ASMa :D
     
  13. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    Учили меня асму перед дельфи - нихрена у них не получилось %) Асм уже позже после разборов в дельфи стал сам учить (сначала вставками кода в защищенном режиме, потом уже в реальном) и дело пошло куда лучше. Да и не нужен он, в принципе, большинству, особенно с нашим уровнем образования =)
     
  14. SDR

    SDR Активный пользователь

    С нами с:
    22 сен 2009
    Сообщения:
    244
    Симпатии:
    0
    antonn
    я не про то, чтоб научиться писать на асме
    я про то, чтобы люди изначально понимали, как и что происходит

    просто когда с языка высокого уровня спрыгивают на C++ (который тоже не самого низкого :) ) они реально многого просто физически догнать не могут, так как их мозг всегда мыслил совсем другими категориями.. большими абстракциями.. как объяснить человеку, воспитавшемуся на php что такое есть указатель в Сях, что массив - он и не массив по сути, а кусок в памяти заканчивающийся нулём, а string - это вообще свойство, представляющее из себя не_массив_даже char'ов, принадлежащее классу string, который обладает ещё и кучей методов? ))

    во грузанул блин )))
     
  15. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    Для этого не обязателен асм, хватит того же дельфи (паскалевский синтаксис, ООП, весь набор указатели/куча/память и тп в сочетании с уже реализованными вещами (те же строки)), С++ все же посложнее будет и с наскоку с ПХП да, тяжеловато.
    Мировозрение нарушается =)

    в пхп вроде есть "указатель" - $$? не совсем то, но уже есть за что зацепиться :)
     
  16. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    antonnУжос. садитесь, два.
     
  17. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    сесть я всегда успею :)
    расскажешь поподробнее, где в пхп есть подобие указателя? хотя мне кажется что не все понимают что это такое в принципе, и судят только по названию такой конструкции, не понимая внетренних процессов =)
     
  18. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    тьфу, перепутал амперсанд и доллар, однако пхп-воины гордо выносят вердикт без объяснения причин и не вдаваясь в детали %)
     
  19. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Ну зачем будущемим руководителю, повару и продавцу программирование? Оно им не надо, как и интегралы, закон Кулона и все остальное :)
    Там нужно просто базовое образование на уровне «уметь пользоваться».

    почему ноль? это ты со строками путаешь, там значение ноль — это последний символ строки.
    а массив - это просто абстракция, в которой есть указатель на место, где начинается выделенный кусок памяти, плюс размер одного элемента, плюс, возможно, количество элементов. Ну чтобы руками не вычислять каждый раз адрес. Все.

    И, да, процессор не в курсе, что такое строка, а уж, тем более, массив. И вообще есть набор битов в байтах, а как этот набор битов интерпретируется — зависит от команды процессора :)
     
  20. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Ну просто эти указатели — они не указали на память, а указатели на переменную. Некий обход области видимости.
     
  21. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    яж говорю - есть от чего отталкиваться, плюс еще кавычечки запендюрил :)
     
  22. kostyl

    kostyl Guest

    Главное помнить, что С++ это очень далеко не PHP...
     
  23. SDR

    SDR Активный пользователь

    С нами с:
    22 сен 2009
    Сообщения:
    244
    Симпатии:
    0
    +100 ))

    его там нет и не может быть по определению


    им и паскаль не нужен, впринципе )

    да, загнался на char'e просто, про строки речь шла.. ))
     
  24. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    SDR
    может быть, определения понятия относительные. Особенно в кавычках.

    вот уж точно "садитесь-два" =)))
     
  25. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    ой нафлудили =)

    я то вот сразу понял, что пхп это сказка просто в сравнении с сишником

    Вообщем, дойдём до ООП, если там нет динамической подгрузки методов($obj->$method();), это вообще фигня тогда =\