Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Оператор cin 
:(
    Опции темы
pappyly
Дата 5.3.2011, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 23.2.2011

Репутация: нет
Всего: нет



Всем привет, я изучаю С++ малое время, и не могу разобраться с оператором cin, к примеру когда хочу написать следующий оператор не сновой строки, а продолжить на этой, то он пишет с новой, тоесть:

...
int x;
cin >> x; (вот здесь, он не продолжает следующий оператор, а начинает с новой строки, вроде за это должен отвечать endl)
cout << x;
...

как это исправить или я что-то не понял?
PM MAIL   Вверх
Silent
Дата 5.3.2011, 10:03 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 252
Регистрация: 3.10.2006

Репутация: 1
Всего: 9



cin делает то, что ему скажут, не больше. У тебя дальше по коду наверняка стоит перенос endl.
Код

...
int x = 5, y = 6;
cin << x << " " << y;
...


На выходе имеем:
Код

5 6

и курсор стоит все еще в этой строке, сразу за "6"
PM MAIL   Вверх
borisbn
Дата 5.3.2011, 12:57 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Silent, ТС спрашивает про cin, а ты ему написал про cout, причём написал неправильно (вместо cout написал cin)

pappyly
1. cin - это не оператор, а класс, у которого определён оператор >>
2. при вводе значения cin дублирует все введённые тобой символы, включая Enter, который ты нажимаешь, чтобы закончить ввод


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
baldina
Дата 5.3.2011, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



Цитата(borisbn @  5.3.2011,  12:57 Найти цитируемый пост)
который ты нажимаешь, чтобы закончить ввод

pappyly, данные в программу попадают только после нажатия Enter

PM MAIL   Вверх
bsa
Дата 5.3.2011, 19:18 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(borisbn @  5.3.2011,  12:57 Найти цитируемый пост)
1. cin - это не оператор, а класс, у которого определён оператор >>

вообще-то это объект класса... Сам класс, скорее всего, std::istream.
PM   Вверх
миг
Дата 5.3.2011, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 15.9.2008

Репутация: нет
Всего: 1



попробуйте так  
Код

#include <conio.h>
char ch;
ch = getche();




Это сообщение отредактировал(а) миг - 5.3.2011, 19:40
--------------------
Oaks may fall when reeds stand the storm.
PM MAIL   Вверх
pappyly
Дата 6.3.2011, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 23.2.2011

Репутация: нет
Всего: нет



такого можно вообще добиться в с++, есть ли какой-либо другой оператор или класс для решения это проблемы??

Это сообщение отредактировал(а) pappyly - 6.3.2011, 07:48
PM MAIL   Вверх
миг
Дата 6.3.2011, 09:29 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 15.9.2008

Репутация: нет
Всего: 1



 В С++ можно добиться чего угодно и не одним способом. smile вот немного извращенный способ
Код

#include <conio.h>
#include<iostream.h>

int main()
{
 
char ch, xh;
ch = getche();
xh = getche();
cout<<" izvraenka: "<<ch<<xh<<endl;

return 0;
}


не понимаю зачем тебе это нужно..

Это сообщение отредактировал(а) миг - 6.3.2011, 10:34
--------------------
Oaks may fall when reeds stand the storm.
PM MAIL   Вверх
pappyly
Дата 6.3.2011, 13:30 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 23.2.2011

Репутация: нет
Всего: нет



я тоже не понимаю, потому что ты пишешь какую-то хрень, меня интересут только cin, к примеру:

я делаю калькулятор и хочу, чтобы результат он мне вывел на той же строке:

#include ...

int main();
{
float x,a,b     (x - результат, a и b - вводимые числа)
char o;     (o - это знак функции, тоесть сложение, вычитание и т.д.)
    cin >> a >> o >> b;
    cout << "=";
        switch (o)
    {
    case '+':     (если o - это плюс, то будет сложение)
        x = a + b;
    break;
    }
}

посде компиляции все это выглядет так:

20+20
=40

а мне нужно, чтобы он не переносил '=40' на новую строку, ясно?
 
так как это решить?

Это сообщение отредактировал(а) pappyly - 6.3.2011, 13:32
PM MAIL   Вверх
миг
Дата 6.3.2011, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 15.9.2008

Репутация: нет
Всего: 1



Цитата(pappyly @  6.3.2011,  13:30 Найти цитируемый пост)
я тоже не понимаю, потому что ты пишешь какую-то хрень, меня интересут только cin, к примеру

а я думал тебя интересует вот это

Цитата(pappyly @  6.3.2011,  07:45 Найти цитируемый пост)
такого можно вообще добиться в с++, есть ли какой-либо другой оператор или класс для решения это проблемы??


сначала говоришь что тебя интересует класс istream.. а потом спрашиваешь про другие способы. а теперь опять говоришь, что только интересуешься  istream. 

Цитата

#include<iostream.h>
#include<stdlib.h>
int main()
{

    float x,a,b ;    
char o;     
    cin >> a >> o >> b;
        switch (o)
    {
    case '+':    
        x = a + b;
    break;
    }

 system("cls");//это тоже хрень которая очищает экран
 cout<<a<<o<<b<<'='<<x<<endl;
 
    return 0;





Это сообщение отредактировал(а) миг - 8.3.2011, 08:08
--------------------
Oaks may fall when reeds stand the storm.
PM MAIL   Вверх
bsa
Дата 6.3.2011, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



pappyly, у С++ нет стандартных средств для получения указанного тобой эффекта. А вот используя дополнительные библиотеки, можно добиться успех. Вот миг привел один из способов.
PM   Вверх
pappyly
Дата 7.3.2011, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 23.2.2011

Репутация: нет
Всего: нет



спасибо миг, ты мне помог, можно считать, что тема закрыта, но если у кого-то появятся новые мысли, то говрите...
PM MAIL   Вверх
borisbn
Дата 7.3.2011, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Цитата(pappyly @  7.3.2011,  00:29 Найти цитируемый пост)
но если у кого-то появятся новые мысли, то говрите...

по консольному компилятору ?  smile 


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
pappyly
Дата 8.3.2011, 03:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 23.2.2011

Репутация: нет
Всего: нет



да
PM MAIL   Вверх
миг
Дата 8.3.2011, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 15.9.2008

Репутация: нет
Всего: 1



Цитата(pappyly @  8.3.2011,  03:48 Найти цитируемый пост)
да 


Можно еще вот это выражение "67+34*45=" передавать при запуске программы в командной строке.. тогда необходимость в cin и вовсе  отпадает.
--------------------
Oaks may fall when reeds stand the storm.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0985 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.