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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.91
Bronny
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 18
#1

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

13.12.2012, 01:16. Просмотров 3436. Ответов 27
Метки нет (Все метки)

Хотелось бы убрать переход на новую строку после "cin".
когда использую cin>>n;
после ввода, в консоли автоматически идет переход на новую строку. Возможно ли как то убрать его операциями из стандартной библиотеки
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2012, 01:16     Убрать переход на новую строку после "cin"
Посмотрите здесь:
C++ Переход на новую строку после пробела
Переход на новую строку после 10 чисел C++
Переход на новую строку после N символов C++
C++ "cin","cout" на "printf","scanf"
C++ Дана строка слов, разделенных пробелами. Сформируйте новую строку, вставив перед каждым вхождением слова "and" запятую
На C++ в строке после символа - "+" поставить символ "*" и посчитать сколько "+" C++
cin без перехода на новую строку C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Модератор
Эксперт CЭксперт С++
6984 / 4155 / 592
Регистрация: 29.11.2010
Сообщений: 11,021
13.12.2012, 01:31     Убрать переход на новую строку после "cin" #2
не нажимайте Enter
Bronny
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 18
13.12.2012, 01:35  [ТС]     Убрать переход на новую строку после "cin" #3
А что нажимать для ввода? мне просто для сдачи, и в задании ввод идет через cin. Я же не могу запретить проверяющему нажимать Enter.
yol
10 / 10 / 0
Регистрация: 13.10.2012
Сообщений: 155
13.12.2012, 01:43     Убрать переход на новую строку после "cin" #4
попробуй вот так:
C++
1
2
3
4
#include <conio.h>
...
char ch;
ch=getch();
Bronny
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 18
13.12.2012, 02:07  [ТС]     Убрать переход на новую строку после "cin" #5
cin нужен=(
MrGluck
Модератор
Эксперт CЭксперт С++
6984 / 4155 / 592
Регистрация: 29.11.2010
Сообщений: 11,021
13.12.2012, 02:16     Убрать переход на новую строку после "cin" #6
Bronny, просто пробела хватит
Bronny
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 18
15.12.2012, 15:16  [ТС]     Убрать переход на новую строку после "cin" #7
Есть какие то ещё предложения?

C++
1
2
3
cout<<"Отрезок равен : ";
cin>>a;
cout<<" см";
Допустим ввожу "5"

Выводит:
Код
Отрезок равен : 5
 см
Хочу:
Код
Отрезок равен : 5 см
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
15.12.2012, 15:30     Убрать переход на новую строку после "cin" #8
Цитата Сообщение от MrGluck Посмотреть сообщение
Bronny, просто пробела хватит
Ну нужно как-то окончить ввод.
Bronny, на чем пишете?
MrGluck
Модератор
Эксперт CЭксперт С++
6984 / 4155 / 592
Регистрация: 29.11.2010
Сообщений: 11,021
15.12.2012, 15:30     Убрать переход на новую строку после "cin" #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <clocale>
#include <cstdlib>
 
int main()
{
    setlocale(LC_ALL, "");
    int a;
    std::cout<<"Отрезок равен : ";
    std::cin >> a;
    system("cls");
    std::cout<<"Отрезок равен : " << a << " см";
}
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
15.12.2012, 15:33     Убрать переход на новую строку после "cin" #10
Цитата Сообщение от MrGluck Посмотреть сообщение
system("cls");
Вариант под винду.
Bronny
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 18
15.12.2012, 15:35  [ТС]     Убрать переход на новую строку после "cin" #11
Цитата Сообщение от MrGluck Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <clocale>
#include <cstdlib>
 
int main()
{
    setlocale(LC_ALL, "");
    int a;
    std::cout<<"Отрезок равен : ";
    std::cin >> a;
    system("cls");
    std::cout<<"Отрезок равен : " << a << " см";
}
А, что бы вся консоль не чистилась, что можно сделать?
Только последняя строчка например.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
15.12.2012, 15:40     Убрать переход на новую строку после "cin" #12
Bronny, ответить на мой вопрос. Кроссплатформенное здесь сложно придумать.
Bronny
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 18
15.12.2012, 15:45  [ТС]     Убрать переход на новую строку после "cin" #13
Цитата Сообщение от go Посмотреть сообщение
Bronny, ответить на мой вопрос. Кроссплатформенное здесь сложно придумать.
С++
Microsoft Visual Studio 2012
Подключенные библиотеки:
C++
1
2
3
4
5
6
7
#include <cmath>
#include <iostream>
#include <locale>
#include <iomanip>
#include <stdio.h>
#include <windows.h>
using namespace std;
MrGluck
Модератор
Эксперт CЭксперт С++
6984 / 4155 / 592
Регистрация: 29.11.2010
Сообщений: 11,021
15.12.2012, 15:52     Убрать переход на новую строку после "cin" #14
Есть еще один костылек) ANSI-драйвер. На лине пашет
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
int main()
{
    int a;
    std::cout << "Отрезок равен : ";
    std::cin >> a;
    std::cout << "\033[1A\033[18Cсм\n";
}
Добавлено через 4 минуты
Или даже так:
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
int main()
{
    int a;
    std::cout << "Отрезок равен : ";
    std::cin >> a;
    std::cout << "\033[1A\033[KОтрезок равен : " << a << " см\n";
}
Bronny
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 18
15.12.2012, 15:57  [ТС]     Убрать переход на новую строку после "cin" #15
Цитата Сообщение от MrGluck Посмотреть сообщение
Есть еще один костылек) ANSI-драйвер. На лине пашет
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
int main()
{
    int a;
    std::cout << "Отрезок равен : ";
    std::cin >> a;
    std::cout << "\033[1A\033[18Cсм\n";
}
Добавлено через 4 минуты
Или даже так:
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
int main()
{
    int a;
    std::cout << "Отрезок равен : ";
    std::cin >> a;
    std::cout << "\033[1A\033[KОтрезок равен : " << a << " см\n";
}
на линуксе можно пробелом делать ввод.
мне надо именно под Win32 console aplication
MrGluck
Модератор
Эксперт CЭксперт С++
6984 / 4155 / 592
Регистрация: 29.11.2010
Сообщений: 11,021
15.12.2012, 16:00     Убрать переход на новую строку после "cin" #16
Цитата Сообщение от Bronny Посмотреть сообщение
на линуксе можно пробелом делать ввод.
мне надо именно под Win32 console aplication
На Windows тоже. Другое дело, что для подтверждения ввода нужно Enter нажать, который пошлет '\n' в поток, что переведет каретку на новую строку. Смотрите в сторону conio.h, там должно быть что-то нужное для вас.
Bronny
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 18
15.12.2012, 16:02  [ТС]     Убрать переход на новую строку после "cin" #17
Цитата Сообщение от MrGluck Посмотреть сообщение
На Windows тоже. Другое дело, что для подтверждения ввода нужно Enter нажать, который пошлет '\n' в поток, что переведет каретку на новую строку. Смотрите в сторону conio.h, там должно быть что-то нужное для вас.
это и ищу=(
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
15.12.2012, 16:07     Убрать переход на новую строку после "cin" #18
Bronny, вот
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <Windows.h>
 
void GoToXY (COORD);
 
int main()
{
    std::cout << "ABC = ";
    _CONSOLE_SCREEN_BUFFER_INFO Info;
 
    GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),  // handle to screen buffer
                                &Info  // screen buffer information
                            );
    int a;
    std::cin >> a;
 
    Info.dwCursorPosition.X = 0;
    GoToXY(Info.dwCursorPosition);
 
    std::cout << "ABC = " << a << " SM" << std::endl;
    
    std::system("pause");
}
 
void GoToXY (COORD coord)
{
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
Добавлено через 53 секунды
Конечно неплохо было бы проверить возвращаемое значение, но думаю Вы сами справитесь.
kit0072
6 / 6 / 2
Регистрация: 14.10.2012
Сообщений: 13
15.12.2012, 16:07     Убрать переход на новую строку после "cin" #19
а ели вот так?
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;
    
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2012, 16:14     Убрать переход на новую строку после "cin"
Еще ссылки по теме:
Объясните разницу между "cin.getline" и "std::getline" C++
C++ Как найти строку которая перед "=" и после
C++ Ввести строку символов после чего заменить все буквы "а" на ноль
C++ Ошибка при компиляции In function"int main()"; expected ';', before "cin", [Build Error] [main.o] Error 1
Найти все вхождения в строку последовательности символов "сто" и заменить на "100" C++

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

Или воспользуйтесь поиском по форуму:
MrGluck
Модератор
Эксперт CЭксперт С++
6984 / 4155 / 592
Регистрация: 29.11.2010
Сообщений: 11,021
15.12.2012, 16:14     Убрать переход на новую строку после "cin" #20
go, все проще)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <clocale>
#include <conio.h>
 
int main()
{
    setlocale(LC_ALL, "");
    char a;
    std::cout << "Отрезок равен : ";
    a = getche();
    std::cout << " см\n";
    //std::cout << a;
}
Yandex
Объявления
15.12.2012, 16:14     Убрать переход на новую строку после "cin"
Ответ Создать тему
Опции темы

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