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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 5.00
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
#1

Считать char числом - C++

20.10.2012, 16:26. Просмотров 2102. Ответов 20
Метки нет (Все метки)

Хотелось бы считать char числом сразу. Конструкция типа
C++
1
scanf("%d", &someChar);
- подходит, но вызывает stack around .. corrupted-предупреждение. Решение вида
C++
1
2
3
 int someCharCopy; 
scanf("%d", &someCharCopy);
char someChar = char(someCharCopy);
нельзя использовать.
Есть какие-либо варианты?

Ещё вопрос. Я предполагал, что, даже если идти считыванием вида scanf("%d", &someChar), то в буфере отснается \n после ввода, но его нет. Куда он делся? О_о Обычно же scanf не ест \n после чисел? Или это на него так параметр вида char, приведенный к int подействовал?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2012, 16:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считать char числом (C++):

Семафоры - можно ли считать ноль положительным числом? - C++
подскажите 1. sem_wait(sem_t* sem); – «ожидание на семафоре». Выполнение потока блокируется до тех пор, пока значение семафора не станет...

считать из файла и определить является прочитанное числом - C++
Здравствуйте. В общем нужно произвести чтение из файла и определить является ли прочитанное числом в общем случае и целым в частности....

Считать из файла в массив char - C++
Имеется массив char, в который из файла нужно считать строку. Для считывания использую данную команду: ifile.getline(str, sizeof(str)); ...

Считать посимфольно из файла в char вектор - C++
Например в файле записаны: aaaaaaa bbbbbbb надо считать первую строчку в вектор char посимвольно, потом происходит сравнение с другим...

Считать файл в переменную типа char, и работать посимвольно - C++
считать файл в переменную типа char, а дальше с ней нужно работать посимвольно, так вот, как написать while(пока это не последний символ...

Считать с файла строку типа char до знака окончания строки - C++
Всем доброго времени суток. Мне нужно считать с файла строку типа char до знака окончания строки ( '\0'). Как мне это сделать? Я...

20
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
21.10.2012, 11:14  [ТС] #16
VS 2008
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.10.2012, 11:19 #17
Цитата Сообщение от nexen Посмотреть сообщение
хотя '\n' с буфера должна была уйти на символ.
Покажите, каким способом определяете, что не ушла.

Добавлено через 3 минуты
C++
1
2
3
4
5
6
char someChar;
scanf("%d", &someChar);
someChar = getchar(); //без остановки извлечёт '\n'
cout << (int)someChar << endl; // вывод кода '\n'
char c;
c = getchar(); // здесь будет ждать ввода
1
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
21.10.2012, 11:32  [ТС] #18
alsav22, да вы шутите, сударь, я уже 3 раза показывал и расписывал, как определяю, что что-то осталось!
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.10.2012, 11:43 #19
Точный код можете написать с коментариями?

Добавлено через 2 минуты
Вот таким кодом проверяете?
C++
1
2
3
4
5
int someCharCopy;
scanf("%d", &someCharCopy);    
char a = getchar();
char c;
scanf("%c", &c);
Добавлено через 3 минуты
И если добавить:
C++
1
2
3
4
5
6
    int someCharCopy;
    scanf("%d", &someCharCopy);    
    char a = getchar();
    cout << (int)a << endl;
    char c;
    scanf("%c", &c);
, то у вас, что выводится на экран?
1
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
21.10.2012, 12:12  [ТС] #20
alsav22, в функции используется считывание переменной (которое я привел уже в районе 5-7 раз). Ещё она используется только в fwrite(&someChar, sizeof(someChar), 1, miFile); и нигде более.
Я проверил наверное все комбинации. scanf/getchar - не ловит и просит ввести символ. cin.get / .ignore ловит и игнорит. gets() для char *someString = new char[1]; ловит тоже.
Если поставить сначала getch (допустим), которые не словит, то после него хоть ты cin.get(), хоть .ignore ставь, '\n' нет и не было в помине и ничего его не поймает.
В первом случае просит дважды ввести символ.
Во втором случае просит дважды ввести символ.
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.10.2012, 14:45 #21
Может я тупой, но ничего не понял. Функцию, где это всё происходит, можете показать?

Добавлено через 1 минуту
Цитата Сообщение от nexen Посмотреть сообщение
scanf/getchar - не ловит и просит ввести символ
Почему в моём коде (19 пост) не просит, а в вашем просит, можете объяснить? В вашей функции как-то по другому сделано?
0
21.10.2012, 14:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2012, 14:45
Привет! Вот еще темы с ответами:

Как считать из файла текст в двумерный массив типа char и отсортировать в алф. порядке? - C++
Постановка задачи: Исходные данные считать из текстового файла через отдельную функцию. Дана строка символов, состоящая из...

Считать из текстового файла информацию начинающую со слова "example" и закачивающуюся числом 555 - C++
Считать из текстового файла информацию начинающую со слова &quot;example&quot; и закачивающуюся числом 555 нужно считать ее и записать в другой...

Определить разность между наибольшим числом и наименьшим числом последовательности - C++
вот задание и сама программа,в ней ошибка ,но незнаю какая. Помогите пожалуйста! Даны вещественные числа A1, A2, A3, ... . Признак...

Проверка является ли строка числом полностью числом или нет? - C++
как проверить является ли строка типа &quot;23уар&quot; полностью числом или нет?


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Опции темы

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