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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Rookie Hose
4 / 4 / 2
Регистрация: 25.08.2014
Сообщений: 36
25.08.2014, 17:03     Вывод переменных типа char: правильно выводится только первый символ #1
Всем привет. Извиняюсь, если вопрос слишком уж нелепый, но не могу понять в чем суть...

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++ Вывод переменной типа char
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
КОП
348 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 755
03.09.2014, 14:22     Вывод переменных типа char: правильно выводится только первый символ #21
Цитата Сообщение от Rookie Hose Посмотреть сообщение
на первый взгляд кажется тяжелой конструкцией.
тут нет объективного мнения. Однако множество лишних переменных зачастую только путают (опять же мое субъективное мнение). Просто оставляйте комментарий в таких местах.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
6428 / 3802 / 882
Регистрация: 30.01.2014
Сообщений: 6,601
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: правильно выводится только первый символ
Еще ссылки по теме:

Вывод списка объектов. Выводится только ссылка на первый элемент C++
Выводится в файл только первый символ строки, остальные пустые C++
Выводится только первый символ строки 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: правильно выводится только первый символ
Ответ Создать тему
Опции темы

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