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

Убрать переход на новую строку после "cin" - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.91
Bronny
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 18
13.12.2012, 01:16     Убрать переход на новую строку после "cin" #1
Хотелось бы убрать переход на новую строку после "cin".
когда использую cin>>n;
после ввода, в консоли автоматически идет переход на новую строку. Возможно ли как то убрать его операциями из стандартной библиотеки
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2012, 01:16     Убрать переход на новую строку после "cin"
Посмотрите здесь:

C++ "cin","cout" на "printf","scanf"
C++ Дана строка слов, разделенных пробелами. Сформируйте новую строку, вставив перед каждым вхождением слова "and" запятую
C++ Переход на новую строку после пробела
Переход на новую строку после 10 чисел C++
C++ С++ консольное приложение win32, матерится на первое "pow" после "if", а на "system" говорит что неопределён.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
15.12.2012, 16:22     Убрать переход на новую строку после "cin" #21
Цитата Сообщение от MrGluck Посмотреть сообщение
go, все проще)
Фиговый вариант. Во-первых это не совместимо(отличие от getch(), что с эхом, но также опасно), во-вторых не подходит ТСу в следствии того, что считывает один символ. Т. е. Получим однозначное число, точнее цифру, а у вас вообще только ASCII код ее.
Цитата Сообщение от MrGluck Посмотреть сообщение
char a;
Цитата Сообщение от MrGluck Посмотреть сообщение
a = getche();
int a; Посмотрите прототип функции. Не забываем об отрицательных значениях.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Bronny
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 18
15.12.2012, 16:30  [ТС]     Убрать переход на новую строку после "cin" #22
Цитата Сообщение от go Посмотреть сообщение
Фиговый вариант. Во-первых это не совместимо(отличие от getch(), что с эхом, но также опасно), во-вторых не подходит ТСу в следствии того, что считывает один символ. Т. е. Получим однозначное число, точнее цифру, а у вас вообще только ASCII код ее.



int a; Посмотрите прототип функции. Не забываем об отрицательных значениях.
да. Хотелось бы без использования char.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,426
15.12.2012, 16:40     Убрать переход на новую строку после "cin" #23
go, да, вариант с getche() не проходит при числах (не цифрах), ну а если поставить ANSI драйвер? На Linux он по-умолчанию используется, на Windows должен от DOS наследоваться, просто надо при загрузке включить, так что можно сказать кроссплатформенный вариант. Хоть ваш для Windows все же лучше подходит (легче реализовать).
http://ru.wikipedia.org/wiki/ANSI.SYS
Bronny
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 18
15.12.2012, 16:59  [ТС]     Убрать переход на новую строку после "cin" #24
Цитата Сообщение от kit0072 Посмотреть сообщение
а ели вот так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include<conio.h>
 
int main()
{
    setlocale(LC_ALL, "");
    int a;
    std::cout<<"Введите размер отрезка: ";
    std::cin >> a;
    std::cout<<"Отрезок равен : " << a << " см";
    _getch;
    
}
что делает _getch; ?
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
15.12.2012, 17:07     Убрать переход на новую строку после "cin" #25
Цитата Сообщение от Bronny Посмотреть сообщение
что делает _getch; ?
Ничем не отличается от getch(). Просто названа в соответствии со стандартом.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,426
15.12.2012, 17:11     Убрать переход на новую строку после "cin" #26
Bronny, по соглашению стандарта ANSI для разработчиков, функции, не входящих в стандарт, следует писать с _ . Это своего рода сигнал.
DDyst
0 / 0 / 0
Регистрация: 16.07.2016
Сообщений: 1
26.07.2016, 22:41     Убрать переход на новую строку после "cin" #27
Пардон за некропост, решил не засорять форум новой темой.
Только начал изучать С++, пытаюсь разобраться в работе ввода-вывода и не очень понимаю, почему после использования объекта cin идет переход на новую строку. Вначале думал, что это происходит засчет передачи символа новой строки клавишей ввода, но и при использовании функции cin.getline(), где символ новой строки заменяется на \0, и при использовании cin.get(), где он отбрасывается и остаётся во входной очереди, в консоли всё равно происходит переход на новую строку. Получается, этот переход заложен где-то в определении самого объекта cin? Или я что-то неправильно понимаю.
Гугл ответа не дал, буду благодарен за объяснение.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.07.2016, 15:59     Убрать переход на новую строку после "cin"
Еще ссылки по теме:

C++ Как найти строку которая перед "=" и после
Переход на новую строку после N символов C++
На C++ в строке после символа - "+" поставить символ "*" и посчитать сколько "+" C++

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

Или воспользуйтесь поиском по форуму:
fire_Rising
 Аватар для fire_Rising
10 / 11 / 2
Регистрация: 11.05.2016
Сообщений: 111
27.07.2016, 15:59     Убрать переход на новую строку после "cin" #28
DDyst, да, это уже заложено в самом объекте, также как и в scanf/printf
Yandex
Объявления
27.07.2016, 15:59     Убрать переход на новую строку после "cin"
Ответ Создать тему
Опции темы

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