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

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

Войти
Регистрация
Восстановить пароль
 
Orbb09
5 / 5 / 1
Регистрация: 14.11.2011
Сообщений: 25
#1

Невозможность ввода значения второй переменной - C++

15.01.2012, 13:06. Просмотров 340. Ответов 7
Метки нет (Все метки)

Недано начал изучать С++.
Застопорился на такой проблеме - у меня есть две переменные и пользователь должен ввести их значения с клавиатуры.
У меня получился такой код:
C++
1
2
3
4
5
6
#include <stdio.h>
main()
{
      int c=getchar();
      int e=getchar();
}
В итоге мне даеться только одно место для ввода переменной (очевидно "с") и дальше программа завершаеться, не давая возможности ввести значение переменной "е"
В чем проблема? Что я неправельно делаю?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2012, 13:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Невозможность ввода значения второй переменной (C++):

Создать два файла целых чисел, первый содержит значения дней, а второй — значения месяцев - C++
File67. Дан строковый файл, содержащий даты в формате «день/месяц/год», причем под день и месяц отводится по две позиции, а под год —...

Преобразование значения переменной (long) через функцию в значения структуры - C++
Я недавно начал заниматься С++ и программированием в целом. Вот у меня такая проблема. В этой программе не работает часть, когда...

Проверка ввода переменной - C++
Ребята) Создаю переменную типа int. Затем ввожу данные в консоли и присваиваю их переменной. Как проверить, были ли введены данные типа int...

Игнорирование компилятором ввода переменной - C++
Здрасте, будьте любезны подскажите и printf и std::cin игнорируются компилятором, очень важно понимание сути ошибки #define...

В результате ввода переменной int присваивается символ - C++
Создайте структуру с именем time. Три ее поля, имеющие тип int, будут называться hours, minutes и seconds. Напишите программу, которая...

Объявление переменной, после ввода её имени с клавиатуры - C++
необходимо, чтобы пользователь имел возможность задавать свои имена переменных. А вообще требуется для создания множества с определённым...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cyberobot
15 / 15 / 1
Регистрация: 01.09.2011
Сообщений: 66
15.01.2012, 13:08 #2
C++
1
2
3
4
5
6
7
8
#include <iostream>
int main()
{
     int c,e;
     std::cin>>c;
     std::cin>>e;
     return 0;
};
0
Orbb09
5 / 5 / 1
Регистрация: 14.11.2011
Сообщений: 25
15.01.2012, 13:13  [ТС] #3
cyberobot, попробовал - все также... У меня впечатление, что я использую какую-то странную среду програмирования. Не подскажете, какую лучше использовать?
0
easybudda
Модератор
Эксперт CЭксперт С++
9625 / 5573 / 947
Регистрация: 25.07.2009
Сообщений: 10,708
15.01.2012, 13:13 #4
C
1
2
3
4
5
6
7
8
#include <stdio.h>
 
int main(void){
    int a, b;
    scanf("%d %d", &a, &b);
    printf("%d %d\n", b, a);
    return 0;
}
1
Aed Ginvaell
1 / 1 / 0
Регистрация: 14.01.2012
Сообщений: 36
15.01.2012, 13:24 #5
Мне привычно так. Что непонятно спрашивай
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <conio.h> 
void main()
{
    int a, b;
    printf("Введите a\n");
    scanf("%d", &a);
    printf("Введите b\n");
    printf("%d",  &b);
    printf("Число a равно %d. Число b равно%d\n", a, b);
    getch();
}
0
MrCold
855 / 753 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
15.01.2012, 14:06 #6
Тут похоже нужно очистить буфер ввода:

C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
int main()
{
     int c,e;
     std::cin>>c;
     std::cin>>e;
     std::cin.ignore();//   <------
     std::cin>>e;
     return 0;
};
Добавлено через 12 минут
Эх ,невысыпаемость ....

C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
int main()
{
     int c,e;
     std::cin>>c;
     std::cin.ignore();//   <------
     std::cin>>e;
     
     return 0;
};
0
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
15.01.2012, 15:29 #7
Да нормально всё оно читает, сами проверьте
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
int main()
{
     int c,e;
     std::cin>>c;
     std::cin>>e;
     std::cout<<std::endl<<c<<'\t'<<e;
     return 0;
};
0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
15.01.2012, 17:46 #8
Цитата Сообщение от Orbb09 Посмотреть сообщение
В итоге мне даеться только одно место для ввода переменной (очевидно "с") и дальше программа завершаеться,
Вы все правильно делаете. Могу предположить, что вводите через пробел или энтер. А необходимо вводить вместе. Так как читается все из потока.

Добавлено через 1 минуту
Цитата Сообщение от easybudda Посмотреть сообщение
scanf("%d %d", &a, &b);
А при чем здесь целые числа, если автор хочет читать символы из потока

Добавлено через 1 минуту
Цитата Сообщение от Orbb09 Посмотреть сообщение
Недано начал изучать С++.
Тогда лучше
C++
1
cin.get()
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2012, 17:46
Привет! Вот еще темы с ответами:

Почему после ввода переменной программа закрывается? - C++
#include&lt;iostream&gt; using namespace std; int main() { int n, a=10,b, g=1; cin&gt;&gt;n;

Проверка правильности ввода для переменной типа short - C++
Как проверить, введённые числа в диапазоне Short или нет? Если я ввожу -32769, программа закрывается... int main() { short a, b, x,...

strcpy-ф-ия которая копирует значение первой переменной и вставляет во второй,но результата нет - C++
int strcpy(char t, char s){ int i=0; while((s=t)!='\0'){i++; } return s;} вызов char a=&quot;aaa&quot;; char b; ...

Передать значения вершины первого списка во второй - C++
Доброе время суток! Сохраняя традицию: у меня проблема с программой. Функция change, в теории, должна передавать значения вершины первого...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.01.2012, 17:46
Ответ Создать тему
Опции темы

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