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

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

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

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

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

Как с помощью 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 ввести скольугодно длинную строку?
Прочитать русские буквы в массив char с помощью cin C++
C++ Можно ли в cin ввести строку любого размера?
C++ Считать строку с пробелами с помощью Std::cin
C++ Как сделать чтобы при компиляции cin>>a>>b>>c; вводить можно было в одну строку?
C++ Как используя командную строку ввести символьную строку?
Как ввести строку неизвестной длины C++
Как ввести с клавиатуры строку C++
C++ Как заново ввести строку
C++ Можно ли ввести с помощью std::cin значения элементов двух массивов?
C++ Как ввести строку с пробелами
Как правильнее ввести текстовую строку C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rondmeo
2 / 2 / 0
Регистрация: 23.02.2014
Сообщений: 23
25.02.2014, 23:26     Как с помощью cin ввести нуль терминированную строку? #2
Обнулить ptr1 перед вводом.
DU
1479 / 1055 / 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
Сообщений: 370
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
1479 / 1055 / 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
Сообщений: 370
25.02.2014, 23:57  [ТС]     Как с помощью cin ввести нуль терминированную строку? #6
DU, а выводит таки нуль, спасибо
Yandex
Объявления
25.02.2014, 23:57     Как с помощью cin ввести нуль терминированную строку?
Ответ Создать тему
Опции темы

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