• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы Nikit
  • Дата начала
N

Nikit

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

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

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

выводит 0
 
Q

qqwertty

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

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

char c[256];

scanf("%s",&c);

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

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

Nikit

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

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

qqwertty

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

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

Nikit

Я сделал, как вы сказали...исправил, но он всё равно почему-то не выдаёт коды символов.....
 
Q

qqwertty

Я сделал, как вы сказали...исправил, но он всё равно почему-то не выдаёт коды символов.....

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

Nikit

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

qqwertty

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


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

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

Nikit

а возможно ли то же самое сделать, только, чтобы пользователь вводил сам символ, я тут попробовал....вывел -256
 
Q

qqwertty

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!