Перевод Из Char В Int

Nikit

New Member
20.02.2012
1
0
#1
Здравствуйте, ребят! Помогите чем можете......прогу написал, вроде, но не работает что-то..

#include <stdlib.h>
#include <stdio.h>
#include<conio.h>

void main()
{
int n;
char *c;
clrscr();
printf("Text:",c);
scanf("%c",&c);
n=atoi&copy;;
printf("in integer = %d",n);
getch();
}

выводит 0
 
Q

qqwertty

Гость
#2
Это хорошо, что 0 выводит, а не рушится совсем :)

замените соответствующие строки на:

char c[256];

scanf("%s",&c);

И срочно перечитывайте книжку свою!!!

Особенно про то, что такое (char *c) и чем он от (char c[]) отличается.
 

Nikit

New Member
20.02.2012
1
0
#3
Спасибо.....но почему он 0 выводит? Я хочу что бы он ascii выдал, как это сделать? Если не сложно, объясните.

Добавлено: Или это невозможно сделать через атои?
 
Q

qqwertty

Гость
#4
Мне несложно, но вы врядли поймете, потому что похоже не знакомы с теорией указателей. Вы объявили указатель на char и не определили его, т.е он ни на что не указывает, а затем берете ссылку от него. По идее, в нормальном компиляторе у вас в этом месте программа должна со скрипом вылететь и попросить отправить отчет в майкрософт)))
Но видимо у вас BC31 какой-нибудь, т.е компилятор от борланда, который присваивает нулевой указатель c. Вот так 0 и получается.

Что значит невозможно? я же сказал вам какие строчки заменить, и все работать будет.....
 

Nikit

New Member
20.02.2012
1
0
#5
Я сделал, как вы сказали...исправил, но он всё равно почему-то не выдаёт коды символов.....
 
Q

qqwertty

Гость
#6
Я сделал, как вы сказали...исправил, но он всё равно почему-то не выдаёт коды символов.....
atoi переводит строку в число.... Чтобы получить код символа достаточно char в int преобразовать.
Тогда вопорос конкретный задавайте, а то в угадайки играем
 

Nikit

New Member
20.02.2012
1
0
#7
просто тема так названа...я думал не надо пояснять ещё раз, каким образом этого добиться, не подскажите, хотя бы наводку)
 
Q

qqwertty

Гость
#8
Надо было назвать тему узнать код символа. Из char в int переводить не надо, поскольку char это тот же int только однобайтовый. Обычно под таким вопросом подразумевается перевод из строки в число.


По теме: char c = 'A';
printf("%d",c); //выдаст код символа

можно явно преобразовывать, используя (int)c
 

Nikit

New Member
20.02.2012
1
0
#9
а возможно ли то же самое сделать, только, чтобы пользователь вводил сам символ, я тут попробовал....вывел -256
 
Q

qqwertty

Гость
#10
Я думаю вам литературу сначало почитать надо, я могу за вас прогу написать, но это не поможет вам. Я дал вам подсказку, еще нужно ввод символа оформить правильно, как у вас в первый раз было "%c". И все будет работать :)