getchar

Автор Тхакур, 18 июля 2021, 18:46:40

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Тхакур

Моё почтение Всем!...
#include <stdio.h>
int main()
{
   int a,b;
   a=getchar();
   b=150;
   printf("a ------ %d, b ------ %d \n", a,b);
   return(0);
}


верно ли, что должно вывести значение переменной b  и того, что ввёл?
но получается
th@deb:~/Общедоступные/проект-Си$ gcc aaaaa.c -o hello
th@deb:~/Общедоступные/проект-Си$ ./hello
4
a ------ 52, b ------ 150
th@deb:~/Общедоступные/проект-Си$


можете сказать почему?

dzhoser

Символ набраный на клавиатуре (ввод пользователя), 52 это код символа 4, выдаёт 52 потому что %d, ,что бы напечатало а --- 4, надо помоему вместо %d написать %s
Ubuntu->Linux mint->Astra Linux SE->Debian 12
Для новичков

Тхакур

#include <stdio.h>
int main()
{
   int a,b;
   a=getchar();
   b=150;
   printf("a ------ %s, b ------ %d \n", a,b);
   return(0);
}

th@deb:~/Общедоступные/проект-Си$ gcc aaaaa.c -o hello
th@deb:~/Общедоступные/проект-Си$ ./hello
4
Ошибка сегментирования
th@deb:~/Общедоступные/проект-Си$

qupl

%s  - для вывода переменной символьного типа.  Ликбез нужен по типам C.  И посмотреть какой тип возвращает getchar().

Тхакур

#include <stdio.h>
int main (void)
{   
   int rsim=-1;
   printf ("Введите символ:\n");
   rsim = getchar ();
   printf ("Считан символ: %c\n",rsim);
   return 0;
}

th@deb:~/Общедоступные/проект-Си$ gcc aaaaa.c -o hello
th@deb:~/Общедоступные/проект-Си$ ./hello
Введите символ:
u
Считан символ: u
th@deb:~/Общедоступные/проект-Си$ ./hello
Введите символ:
7
Считан символ: 7
th@deb:~/Общедоступные/проект-Си$

:) :) :)