gpt4 book ai didi

c - 如何在c中一次从一串没有空格的字符中输入一个字符?

转载 作者:太空宇宙 更新时间:2023-11-04 07:01:45 24 4
gpt4 key购买 nike

假设,"5181 2710 9900 0012"-是一串数字,我需要从一串没有空格的数字中一次取一个数字作为输入,进行算术运算。所以,我这样写,

int a[20];
for(int i=0;i<16;i++)
{
scanf("%d",&a[i]);
}

但它并没有给我预期的结果。但是当我使用“%1d”而不是“%d”时,它给了我预期的结果。那么,它是如何工作的?

最佳答案

由于 scanf 是 printf 的逆运算,您可以通过打印带有修饰符的任何数字来验证这一点(只是一个小提示)。*

通常,格式前的数字是“宽度”修饰符。在这种情况下,这意味着您只将一个字节读入一个数字。如果你指定%d,它可能是任意长度的数字。

例子:

#include <stdio.h>

int main() {
int a;
sscanf("1234", "%d", &a);
printf("%d\n", a); // prints 1234
sscanf("1234", "%1d", &a);
printf("%d\n"m a); // prints 1
}


*) 对于这种特殊情况,这似乎是错误的。但是,在指定 %d 格式时,数字不会被截断是有道理的,因为这会改变数字的含义。但是,在许多情况下,您可以尝试使用 printf 来预测 scanf 的行为。但当然,阅读手册或文档总是更有帮助的方法:)

关于c - 如何在c中一次从一串没有空格的字符中输入一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37228286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com