Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
#1

Как с помощью cin ввести нуль терминированную строку? - C++

25.02.2014, 23:23. Просмотров 373. Ответов 5
Метки нет (Все метки)

Как с помощью cin ввести "законченную" строчку, имеется в виду символ ноль. таким образов не вводится. какие есть варианты?

C++
1
2
cin >> ptr1;
    ptr1[strlen(ptr1)] = '\0';
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2014, 23:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как с помощью cin ввести нуль терминированную строку? (C++):

Защита от дурака при вводе текста с помощью: cin.get cin.clear cin.sync - C++
Доброго времени суток. На С++ учусь с недавних пор. Имеется стандартная "защита от дурака" на ввод. Не пойму предназначение cin.get() !=...

Можно ли ввести с помощью std::cin значения элементов двух массивов? - C++
Скажите можно ли вести с помощью cin два массива? Я начал вот делать, но почему то водится только один массив.Что может тут быть...

Можно ли в cin ввести строку любого размера? - C++
Собственно можно ли в cin ввести строку неопределенного размера, пользуясь только char * ? Например: char *temp = new char; int...

Считать строку с пробелами с помощью Std::cin - C++
перехожу с чистого си на плюсы, начал разбираться с cin и заметил такую штуку что она читает введенную строку только до первого же...

Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами - C++
Нужна помощь. Задача продемонстрировать различие между вводом с помощью cin.get и cin.getline с тремя параметрами, как из потока достать...

Объясните пожалуйста как работают cin.good(), cin.sync(), cin.clear() - C++
Такая проблема: сдаю в вуза лабораторные по программированию, писал все сам, до этого c++ не изучал, поэтому возникали некоторые проблемы....

5
Rondmeo
2 / 2 / 0
Регистрация: 23.02.2014
Сообщений: 23
25.02.2014, 23:26 #2
Обнулить ptr1 перед вводом.
0
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
25.02.2014, 23:26 #3
да там и так ноль вводится:
C++
1
2
3
4
5
6
7
8
int main()
{
  char str[] = "11111111111111";
  std::cout << str << std::endl;
  std::cin >> str;
  std::cout << str << std::endl;
  return 0;
}
0
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
25.02.2014, 23:31  [ТС] #4
DU, почему то в дебаге не отобрадается в переменной ptr1 '\0'

Добавлено через 2 минуты
C++
1
2
3
4
char* ptr1 = new char[10];
    cout << "Input" << endl;
    cin >> ptr1;
    ptr1[strlen(ptr1)] = '\0';
вот как пытался
0
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
25.02.2014, 23:42 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
возможно ваш дебаг не отображает '\0', когда дело касается строк.
если следовать вашей теории и нуль не пишется, то такой код некоректный: ptr1[strlen(ptr1)]
strlen считает количество символов до нуля. а он хз где.
выведите на печать код символа с индексом strlen(ptr1)
std::cout << (int)(ptr1[strlen(ptr1)]) << std::endl;
да и саму строку тоже можно было вывести. если выводится то же, что и вводилось - значит у вас все хорошо.
0
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
25.02.2014, 23:57  [ТС] #6
DU, а выводит таки нуль, спасибо
0
25.02.2014, 23:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2014, 23:57
Привет! Вот еще темы с ответами:

Как используя командную строку ввести символьную строку? - C++
Как используя командную строку ввести символьную строку?

Как сделать чтобы при компиляции cin>>a>>b>>c; вводить можно было в одну строку? - C++
как сделать чтобы при компиляции cout&lt;&lt;&quot;Ввести А1: &quot;; cin&gt;&gt;a&gt;&gt;b&gt;&gt;c;вводить можно было в одну...

Для чего в код вводится cin.ignore после того, как cin>> уже сработало? - C++
Доброго времени суток! Просматриваю простой код. Вводится строка типа string: фунты и дюймы Затем значения переводится в типы int и...

Прочитать русские буквы в массив char с помощью cin - C++
Какую нужно добавить библиотеку, или еще что-то? просто setlocale(LC_ALL, &quot;Russian&quot;); не помогает.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.