|
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 53
|
||||||
Что значит char c[10]16.11.2012, 02:40. Показов 11711. Ответов 30
Метки нет (Все метки)
объясните пожалуйста пошагово этот код
что делает функция get и unget, и getline... что это за параметры, &c[0] передается по ссылке... а нельзя просто передать, зачем по ссылке передавать? и что девять означает. эх, вот начинаю C++ изучать. конечно непривычно весьма.
0
|
||||||
| 16.11.2012, 02:40 | |
|
Ответы с готовыми решениями:
30
что значит static char? Что значит две звездочки у char?
|
|
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 11
|
|
| 16.11.2012, 02:46 | |
|
Может тебе поможет, неплохая статья для совсем начинающих, по си++
http://www.programmersclub.ru/main/ К слову вот статья именно про функции, что ты спрашиваешь http://programmersclub.ru/33/ А &c[0] - это адрес начала строки(читай массива)
0
|
|
|
|
||
| 16.11.2012, 02:50 | ||
|
Если уж кидать ссылку, то вот http://www.cplusplus.com/refer... eam/unget/ unget возвращает последний символ, прочитанный из cin назад в поток cin В результате следующий за ним getline прочитает строку, включая этот символ. Иначе в c[10] оказалась бы введённая строка без первой буквы
2
|
||
|
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
|
|
| 16.11.2012, 03:58 | |
|
Kuzia domovenok, это извращенный отлов экзепшнов. Такое только во сне может присниться.
0
|
|
|
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 53
|
||||||
| 17.11.2012, 00:45 [ТС] | ||||||
|
вчера устал видимо, гуглил я unget, но вот сейчас решил подробнее разобрать пример который там:
c = cin.get(); если это цифра то значит юзер ввел цифру кстати, а ведь если ввести "1ывдаоывдаоыва" то программа посчитает что ввели мы число. как посоветуете нормально реализовать? unget значит просто возвращает символ обратно в поток ввода, чтобы заново его считать. с этим разобрался, спасибо. Только вот насчет строки cin.getline( &c[0], 9 ); здесь девять - это максимальное кол-во символов? странно, разные описания функции getline http://ru.cppreference.com/w/c... ng/getline http://ru.cppreference.com/w/cpp/io/getline функции видимо разные. но вот не понятно почему передается &c[0] по ссылке... а еще интересно в конце массив выводится, никаких циклов для того чтобы собрать массив, просто "с" указано и все
0
|
||||||
|
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 5
|
|
| 17.11.2012, 00:57 | |
|
time123
)) Судя по всему, вы переходите на С++ с паскаля или делфи) Я так же новичок в С++ и мыслю точно так же, как и вы)
0
|
|
|
Неэпический
|
|||||
| 17.11.2012, 01:05 | |||||
|
0
|
|||||
|
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 53
|
||||||
| 17.11.2012, 01:20 [ТС] | ||||||
|
еще с указателями разбираюсь, вот к примеру код
получается если указать & перед названием переменной или массивом, то получаешь адрес? еще такой вопрос, а если просто указать в данном примере cout << "b is " << b << endl; то получу адрес указателя, или нет? и если указать &b что это за адрес... p.s. cvetik13, а вы, судя по нику, девушка?)
0
|
||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 17.11.2012, 01:22 | |
|
time123, Получите. В данном примере. А если char* попробуете вывести - нужно будет в void* привести, чтобы увидеть адрес.
0
|
|
|
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 53
|
|
| 17.11.2012, 01:27 [ТС] | |
|
эм... что? зачем в void переводить? речь ведь идет об указателе на переменную типа char, или нет?
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 17.11.2012, 01:34 | |
|
time123, Да. По той простой причине, что для указателя на char перегружен оператор вывода в поток.
http://ideone.com/7oAABQ http://ideone.com/I7XZMz Во втором примере, вместо того что мы хотели выведет бред в первом выводе, т.к. указатель на char не терминирован нулем, потому вывод будет кривой. http://ideone.com/BLTjef В данном случае нулем терминирован, но строка пустая.
0
|
|
|
Неэпический
|
||||
| 17.11.2012, 01:38 | ||||
|
0
|
||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 17.11.2012, 01:39 | |
|
Croessmah, Кстати, не факт, что это оператор взятия адреса.) И чтобы не влететь в ситуацию, когда это не оператор взятия адреса иногда лучше юзать std::addressof/boost::addressof
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 17.11.2012, 01:42 | |
|
Croessmah, Соглашусь. Просто уточнил.
0
|
|
|
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 53
|
||||||
| 17.11.2012, 03:23 [ТС] | ||||||
|
так, значит в первом случае получаем адрес указателя, а во втором адрес переменной типа char
в тип void приводится сам указатель, так? тогда а можно его с самого начала объявить как void, если тип char, или это будет неправильно? и еще интересует, на какие именно операции перегружен оператор для char-указателя? любопытно то что здесь http://ideone.com/BLTjef выдается пустая строка... с чего бы это, ну сам символ NULL там походу хранится.
0
|
||||||
|
Неэпический
|
||||||||
| 17.11.2012, 03:34 | ||||||||
|
попробуйте вот этот код:
0
|
||||||||
|
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 53
|
||||||
| 17.11.2012, 03:40 [ТС] | ||||||
|
тоесть указатель на указатель? или указатель на какой-то диапазон адресов памяти?
Мне бы еще разобраться с передачей значений в функцию, вот например часть кода string mumble( int *array, int size ) что если передать int array вообще вот если не ошибаюсь то можно передавать в функции переменные, массивы со знаками & * если передать без знака то передается просто значение переменной (не по ссылке), если указать знак & то передается адрес ячейки памяти, а если указать со знаком * то передается значение по данному указателю, верно? то есть в этом примере array - это походу указатель на начало массива видимо, или нет... вот кусок этого кода
0
|
||||||
|
Неэпический
|
|||
| 17.11.2012, 04:00 | |||
|
Пример: http://ideone.com/Hawfby
0
|
|||
|
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 5
|
|
| 18.11.2012, 18:18 | |
|
0
|
|
| 18.11.2012, 18:18 | |
|
Помогаю со студенческими работами здесь
20
Sleep(8000) - что значит? На что можно заменить в борланд с++? Что значит Handle hf? Что в эту функцию нужно передавать
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|