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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.83
STGE
770 / 576 / 91
Регистрация: 17.06.2009
Сообщений: 1,188
#1

Ввод значения символьной переменной - C++

11.03.2011, 00:40. Просмотров 2994. Ответов 16
Метки нет (Все метки)

Здравствуйте. Подскажите пожалуйста, как в ЯВУ C осуществить ввод символа. Я пытался это сделать следующим образом:
scanf("%c",&ch);
собственно предварительно описав переменную ch типа char. Но никакой реакции при выполнении данного оператора. Реализовать ввод удалось только так:
scanf("%c",&ch);
scanf("%c",&ch);
В чём кроется проблема и каким образом её можно устранить ?
(я использую программную среду NetBeans)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2011, 00:40     Ввод значения символьной переменной
Посмотрите здесь:

Существует ли метод/функция перевода значения символьной переменной в int - C++
Хотел спросить, существует ли метод/функция перевода значения символьной ПЕРЕМЕННОЙ в int?

Ввод значения целочисленной переменной из консоли - C++
Доброго времени суток. Вот проблемная часть кода: ... setlocale(LC_ALL, "Russian"); int a; cin >> a; if('\n' == a) ...

Преобразование символьной переменной в целочисленную - C++
char slovo="chislo"; int chislo=12345; Как сделать, чтобы символы "chislo" воспринималось как переменная chislo.

Двойная кавычка как значение символьной переменной - C++
Требуется вычистить строку от двойных кавычек. Строка состоит из широких символов. Как бы я ни объявлял кавычку - wchar_t ch = '"'; ...

Ввод символьной строки. Подскажите что делаю не так? - C++
Подскажите что делаю не так? char model; хочу что бы модель можно было ввести спробелами. меняем на string mondel; значит...

Цикл, принимающий с клавиатуры отдельные символы и накапливающий их в символьной переменной, каждый раз выполняя битовую операцию | - C++
Помогите пожалуйста чайнику с заданием Организовать цикл, который принимает с клавиатуры отдельные символы и накапливает их в символьной...

Символьной переменной L присвоить значение true, если отрицательная компонента вектора C встретится не позднее, чем у векторов A и B - C++
Даны векторы A, B, C, у каждого из которых есть хотя бы одна отрицатель- ная компонента. Символьной переменной L присвоить значение true,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
11.03.2011, 01:03     Ввод значения символьной переменной #2
Попробуйте перед этим действием очистить входной поток
C
1
fflush(stdin);
STGE
770 / 576 / 91
Регистрация: 17.06.2009
Сообщений: 1,188
11.03.2011, 01:08  [ТС]     Ввод значения символьной переменной #3
asics, проблема осталась.
STGE
770 / 576 / 91
Регистрация: 17.06.2009
Сообщений: 1,188
11.03.2011, 01:31  [ТС]     Ввод значения символьной переменной #4
Сам раньше на паскале программировал. Вот пришлось перейти на C, а тут проблемы с самым обычным вводом возникают.
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
11.03.2011, 01:33     Ввод значения символьной переменной #5
STGE, покажыте весь код, и что конкретно не получается, а то я чето не очень вас понял.
a_lebedev
6 / 6 / 0
Регистрация: 05.02.2011
Сообщений: 48
11.03.2011, 01:36     Ввод значения символьной переменной #6
Работая в Borland C++ иногда использовал функцию
C++
1
char getch()
, (conio.h) которая считывает символ, вводимый с клавиатуры. Использовать ее для ввода символа можно так:
char ch = getch();
STGE
770 / 576 / 91
Регистрация: 17.06.2009
Сообщений: 1,188
11.03.2011, 01:39  [ТС]     Ввод значения символьной переменной #7
MILAN, игнорируется ввод символа:
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main()
{
    float a,b;
    char c;
    printf("vvedite ishodnie dannie: \n");
    printf("znacheniya argumentov a i b: ");
    scanf("%f%f",&a,&b);
    printf("znak arifmeticheskoi operacii: ");
    scanf("%c",&c);    
    return 0;
}
a_lebedev
6 / 6 / 0
Регистрация: 05.02.2011
Сообщений: 48
11.03.2011, 01:41     Ввод значения символьной переменной #8
а, так просто исправьте
C++
1
char c[1];
на
C++
1
char c;
Dangelo
7 / 7 / 1
Регистрация: 28.11.2010
Сообщений: 57
11.03.2011, 01:41     Ввод значения символьной переменной #9
попробуй так
C++
1
scanf("\n%f%f",&a,&b);
STGE
770 / 576 / 91
Регистрация: 17.06.2009
Сообщений: 1,188
11.03.2011, 01:44  [ТС]     Ввод значения символьной переменной #10
Т.е. есть возможность ввести только значения переменных a и b.

Добавлено через 2 минуты
Dangelo, хоть и немножко не там, но тем не менее это сработало. Большое спасибо. А зачем использовать перевод строки в функции scanf?
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
11.03.2011, 01:46     Ввод значения символьной переменной #11
Цитата Сообщение от STGE Посмотреть сообщение
char c[1];
Какой смысл массива с одного елемента?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <conio.h>
int main()
{
    float a,b;
    char c;
    printf("vvedite ishodnie dannie: \n");
    printf("znacheniya argumentov a i b: ");
    scanf("%f%f",&a,&b);
    printf("znak arifmeticheskoi operacii: ");
    c=getche();
    getch();
    return 0;
}
a_lebedev
6 / 6 / 0
Регистрация: 05.02.2011
Сообщений: 48
11.03.2011, 01:50     Ввод значения символьной переменной #12
Можно предположить, что без перевода курсора на следующую строку перед вводом ch, ch присваивался управляющий символ Enter.
Dangelo
7 / 7 / 1
Регистрация: 28.11.2010
Сообщений: 57
11.03.2011, 01:51     Ввод значения символьной переменной #13
scanf("%c",...) не пропускает пробельные символы и пытается читать а у тебя они остались после прошлой функции. по идее еще можно перед сканф использовать fflush

Добавлено через 39 секунд
у меня сегодня похожая проблема была, благо умный человек подсказал))
STGE
770 / 576 / 91
Регистрация: 17.06.2009
Сообщений: 1,188
11.03.2011, 01:57  [ТС]     Ввод значения символьной переменной #14
Цитата Сообщение от MILAN Посмотреть сообщение
Какой смысл массива с одного елемента?
MILAN, это был один из вариантов (который также не давал желаемого результата).
А вот с conio.h у меня тоже проблемка (таковой в списке библиотек вовсе не имеется).

Добавлено через 2 минуты
Она случайно не считается устаревшей (не появилось ли замены) ?
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
11.03.2011, 02:31     Ввод значения символьной переменной #15
Цитата Сообщение от STGE Посмотреть сообщение
scanf("%f%f",&a,&b);
замените на
C
1
scanf("%f%f%*c",&a,&b);
и будет Вам счастье
Dangelo
7 / 7 / 1
Регистрация: 28.11.2010
Сообщений: 57
11.03.2011, 02:39     Ввод значения символьной переменной #16
а пояснений не дадите?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2011, 02:43     Ввод значения символьной переменной
Еще ссылки по теме:

Записать все слова символьной строки, чтобы каждое слово было с новой строки, и в отдельной переменной - C++
Здравствуйте. нужно сделать задание, Записать все слова символьной строки, чтобы каждое слово было с новой строки, и в отдельной...

Напишите программу, которая выдает запрос на ввод значения часов и значения минут. - C++
Условие: Напишите программу, которая выдает запрос на ввод значения часов и значения минут. Функция main() должна передать эти два...

Ввод переменной посреди строки - C++
Есть строка &quot;Enter: &quot; Причем, после вывода этой строки каретка должна переместится в квадратные скобки, и ввод переменной должен быть...

Ввод переменной независящий от работы программы - C++
Задача такая, нужно, что бы переменная вводилась в любое время работы программы и совершала некие действия(вывод чего-нибудь, к примеру),...

Почему ввод переменной из файла не работает? - C++
Доброго времени суток! :senor: Не могу найти подходящую тему для обсуждения, а в правильности создания новой сомневаюсь. Поэтому напишу...


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

Или воспользуйтесь поиском по форуму:
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
11.03.2011, 02:43     Ввод значения символьной переменной #17
Цитата Сообщение от Dangelo Посмотреть сообщение
а пояснений не дадите?
* Suppresses assignment. The conversion that follows occurs as
usual, but no pointer is used; the result of the conversion is
simply discarded.
RTFM
Yandex
Объявления
11.03.2011, 02:43     Ввод значения символьной переменной
Ответ Создать тему
Опции темы

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