Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
RayPas
 Аватар для RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 367
25.02.2014, 23:23     Как с помощью cin ввести нуль терминированную строку? #1
Как с помощью cin ввести "законченную" строчку, имеется в виду символ ноль. таким образов не вводится. какие есть варианты?

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

C++ ввести строку символов. Сформировать строку вдвое большей длины, где каждый символ предворяется пробелом. Вывести полученную строку.
C++ Можно ли в cin ввести строку любого размера?
C++ Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами
C++ Считать строку с пробелами с помощью Std::cin
C++ Как сделать чтобы при компиляции cin>>a>>b>>c; вводить можно было в одну строку?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rondmeo
2 / 2 / 0
Регистрация: 23.02.2014
Сообщений: 23
25.02.2014, 23:26     Как с помощью cin ввести нуль терминированную строку? #2
Обнулить ptr1 перед вводом.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
25.02.2014, 23:26     Как с помощью cin ввести нуль терминированную строку? #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;
}
RayPas
 Аватар для RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 367
25.02.2014, 23:31  [ТС]     Как с помощью cin ввести нуль терминированную строку? #4
DU, почему то в дебаге не отобрадается в переменной ptr1 '\0'

Добавлено через 2 минуты
C++
1
2
3
4
char* ptr1 = new char[10];
    cout << "Input" << endl;
    cin >> ptr1;
    ptr1[strlen(ptr1)] = '\0';
вот как пытался
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
25.02.2014, 23:42     Как с помощью cin ввести нуль терминированную строку? #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
возможно ваш дебаг не отображает '\0', когда дело касается строк.
если следовать вашей теории и нуль не пишется, то такой код некоректный: ptr1[strlen(ptr1)]
strlen считает количество символов до нуля. а он хз где.
выведите на печать код символа с индексом strlen(ptr1)
std::cout << (int)(ptr1[strlen(ptr1)]) << std::endl;
да и саму строку тоже можно было вывести. если выводится то же, что и вводилось - значит у вас все хорошо.
RayPas
 Аватар для RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 367
25.02.2014, 23:57  [ТС]     Как с помощью cin ввести нуль терминированную строку? #6
DU, а выводит таки нуль, спасибо
Yandex
Объявления
25.02.2014, 23:57     Как с помощью cin ввести нуль терминированную строку?
Ответ Создать тему
Опции темы

Текущее время: 23:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru