“%d 将输入的其余部分转换为整数”是什么意思?
What does it means by "%d converts the rest of the input to integer"?
除了最后一句我都理解了
the conversion specifier "%d" skips optional leading whitespace and (tries to) converts the rest of the input to integer (if no errors occur).
我理解关于 可选空格 的要点。但是 "converts the rest of the input to integer" 是什么意思呢?我的意思是,如果输入本身是整数,为什么它会将输入转换为整数?
The input itself is an integer?
不是,键盘输入的是字符串(ascii),所以scanf把它转成整数存到变量里。
看到这个:
#include <stdio.h>
int main()
{
char cnum[] = "123";
int num = 0;
int i=0;
while(cnum[i])
{
num*=10;
num+= cnum[i]-'0';
i++;
}
printf("%d",num); //This also converts int to string to print
return 0;
}
谢谢。
除了最后一句我都理解了
the conversion specifier "%d" skips optional leading whitespace and (tries to) converts the rest of the input to integer (if no errors occur).
我理解关于 可选空格 的要点。但是 "converts the rest of the input to integer" 是什么意思呢?我的意思是,如果输入本身是整数,为什么它会将输入转换为整数?
The input itself is an integer?
不是,键盘输入的是字符串(ascii),所以scanf把它转成整数存到变量里。
看到这个:
#include <stdio.h>
int main()
{
char cnum[] = "123";
int num = 0;
int i=0;
while(cnum[i])
{
num*=10;
num+= cnum[i]-'0';
i++;
}
printf("%d",num); //This also converts int to string to print
return 0;
}
谢谢。