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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.83
STGE
 Аватар для STGE
770 / 576 / 91
Регистрация: 17.06.2009
Сообщений: 1,188
11.03.2011, 00:40     Ввод значения символьной переменной #1
Здравствуйте. Подскажите пожалуйста, как в ЯВУ 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++
C++ Символьной переменной L присвоить значение true, если отрицательная компонента вектора C встретится не позднее, чем у векторов A и B
C++ Напишите программу, которая выдает запрос на ввод значения часов и значения минут.
Преобразование символьной переменной в целочисленную C++
C++ Цикл, принимающий с клавиатуры отдельные символы и накапливающий их в символьной переменной, каждый раз выполняя битовую операцию |
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
11.03.2011, 01:03     Ввод значения символьной переменной #2
Попробуйте перед этим действием очистить входной поток
C
1
fflush(stdin);
STGE
 Аватар для STGE
770 / 576 / 91
Регистрация: 17.06.2009
Сообщений: 1,188
11.03.2011, 01:08  [ТС]     Ввод значения символьной переменной #3
asics, проблема осталась.
STGE
 Аватар для STGE
770 / 576 / 91
Регистрация: 17.06.2009
Сообщений: 1,188
11.03.2011, 01:31  [ТС]     Ввод значения символьной переменной #4
Сам раньше на паскале программировал. Вот пришлось перейти на C, а тут проблемы с самым обычным вводом возникают.
MILAN
 Аватар для MILAN
883 / 777 / 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
 Аватар для 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
 Аватар для STGE
770 / 576 / 91
Регистрация: 17.06.2009
Сообщений: 1,188
11.03.2011, 01:44  [ТС]     Ввод значения символьной переменной #10
Т.е. есть возможность ввести только значения переменных a и b.

Добавлено через 2 минуты
Dangelo, хоть и немножко не там, но тем не менее это сработало. Большое спасибо. А зачем использовать перевод строки в функции scanf?
MILAN
 Аватар для MILAN
883 / 777 / 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
 Аватар для STGE
770 / 576 / 91
Регистрация: 17.06.2009
Сообщений: 1,188
11.03.2011, 01:57  [ТС]     Ввод значения символьной переменной #14
Цитата Сообщение от MILAN Посмотреть сообщение
Какой смысл массива с одного елемента?
MILAN, это был один из вариантов (который также не давал желаемого результата).
А вот с conio.h у меня тоже проблемка (таковой в списке библиотек вовсе не имеется).

Добавлено через 2 минуты
Она случайно не считается устаревшей (не появилось ли замены) ?
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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++ Преобразование значения переменной (long) через функцию в значения структуры
Записать все слова символьной строки, чтобы каждое слово было с новой строки, и в отдельной переменной C++

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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     Ввод значения символьной переменной
Ответ Создать тему
Опции темы

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