我想知道是否有可能将一个带符号的char保存到scanf函数中
/* Program to scan in a negative char */
#include <stdio.h>
int main (){
signed char myChar;/* trying to save a char as a signed value */
printf("Enter a signed char: ");
scanf("%c", &myChar ); /*main part of the code to scan in a signed char */
printf("You entered: %c \n", myChar); /*returns a signed char*/
return 0;
}
字符串
2条答案
按热度按时间0yycz8jy1#
您需要使用不同的格式:
字符串
https://godbolt.org/z/f1785qbvK
d7v8vwbk2#
是否可以在
scanf
函数中输入signed char
?是的,OP的
signed char myChar; scanf("%c", &myChar );
可以。更清楚的是,用户正在输入 text,并且可以成功地保存在
signed char
中。详细信息:
scanf()
有两个广泛的选择来读取用户的文本并将其保存到各种对象中。读入字符并保存字符代码
如果你想读取输入
"0"
并将其保存为字符'0'
(例如:ASCII 48),然后使用以下3种形式中的任何一种。"%c"
需要一个匹配的指针char *
、signed char *
或unsigned char *
*1。字符串
读入数字文本并保存为整数
如果你想读取像
"0"
,"123"
,"-123"
,"+123"
," 123"
这样的输入,并保存为一个整数,尽管是一个小整数,那么使用下面两种形式中的任何一种。型
除了
d
和u
之外,代码还可以使用b, d, i, o, u, x, X, n
作为其他碱基,等等。b
与C23。在这些情况下,好的代码会检查
scanf(...) == 1
以查看输入和转换是否成功。void *
也是可能的。不过,这个以后再说吧。如果不存在l长度修饰符,则相应的参数应为指向
char
、signed char
、unsigned char
或void
的指针,该指针指向足够大的存储以接受序列。C23dr § 7.23.6.2