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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Rookie Hose
4 / 4 / 2
Регистрация: 25.08.2014
Сообщений: 36
#1

Вывод переменных типа char: правильно выводится только первый символ - C++

25.08.2014, 17:03. Просмотров 1420. Ответов 22
Метки нет (Все метки)

Всем привет. Извиняюсь, если вопрос слишком уж нелепый, но не могу понять в чем суть...

C++
1
2
3
4
5
6
7
8
9
10
#include <cstdio>
 
int main()
{
    char a,b,c;
    printf("Enter smth: ");
    scanf("%c,%c,%c", &a, &b, &c);
    printf("%c,%c,%c", a, b, c);
    return 0;
}
Почему-то выводит printf нормально только первый символ, два других - совершенно другие символы...в том числе и в случае, когда для всех трех переменных вводишь одинаковые буквы...в чем тут загвоздка?
Скриншот для наглядности.
Миниатюры
Вывод переменных типа char: правильно выводится только первый символ  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2014, 17:03     Вывод переменных типа char: правильно выводится только первый символ
Посмотрите здесь:

сравение переменных типа char C++
C++ Суммирование 2-х переменных типа Char
Объясните как правильно сравнить переменные типа char C++
C++ Способы конкатенации переменных строкового типа и Char
Вывод списка объектов. Выводится только ссылка на первый элемент C++
Выводится в файл только первый символ строки, остальные пустые C++
Выводится только первый символ строки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
КОП
348 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 759
03.09.2014, 14:22     Вывод переменных типа char: правильно выводится только первый символ #21
Цитата Сообщение от Rookie Hose Посмотреть сообщение
на первый взгляд кажется тяжелой конструкцией.
тут нет объективного мнения. Однако множество лишних переменных зачастую только путают (опять же мое субъективное мнение). Просто оставляйте комментарий в таких местах.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
6817 / 4028 / 924
Регистрация: 30.01.2014
Сообщений: 6,847
03.09.2014, 14:44     Вывод переменных типа char: правильно выводится только первый символ #22
Цитата Сообщение от Rookie Hose Посмотреть сообщение
на первый взгляд кажется тяжелой конструкцией.
Решение через swicth в любом случае нехорошее. Понятно, что задание требует и все дела. Но в реальности лучше так не писать. Т.е. хорошим решением этой задачи, в том числе с т.з. эффективности будет вот это:
C++
1
2
3
4
5
6
7
8
9
10
11
12
if(x < -5)
{
    y = x;
}
else if(x < 5)
{
    y = x * x;
}
else
{
    y = 0;
}
А switch - считай как разминку.
И да, если задачи, где наоборот, switch предпочтительнее. Это не зря, что в языке есть несколько вариантов задания условий.

Добавлено через 3 минуты
Цитата Сообщение от Rookie Hose Посмотреть сообщение
К тому же, с доп. переменными, выходит, больше вычисленный...
Это совершенно не факт. Зачастую даже наоборот. Там где нужна временная переменная, компилятор все равно ее создаст, даже если ты напишешь вообще все в одну строку. Подчеркну, я о том, что сама по себе запись в одну строку или с доп. переменной не говорит о том, что будет создано, а что нет. Есть ситуации, где переменную нельзя не создать, даже если явного создания в коде нет (исп. временная переменная). А если в чем-то не уверен - смотри ассемблер, он не врет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.09.2014, 14:59     Вывод переменных типа char: правильно выводится только первый символ
Еще ссылки по теме:

Перевод переменных типа int в char C++
C++ Считывается только первый символ char
Создание и вывод односвязного списка (выводится только первый элемент) C++
Почему печатает только первый символ из argv[i]? C++
При сложении переменных типа char выводится код символа C++

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

Или воспользуйтесь поиском по форуму:
Rookie Hose
4 / 4 / 2
Регистрация: 25.08.2014
Сообщений: 36
03.09.2014, 14:59  [ТС]     Вывод переменных типа char: правильно выводится только первый символ #23
DrOffset, полностью согласен, через if я это сразу написал за разъяснения - спасибо, не подозревал об этом еще.
Yandex
Объявления
03.09.2014, 14:59     Вывод переменных типа char: правильно выводится только первый символ
Ответ Создать тему
Опции темы

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