赋值抑制字符

Assignment Suppression Character

#include <stdio.h>

int main()
{
    char text[20];
    int quantity;
    float number;

    printf("Enter the data: ");
    scanf("%s %*d %f", text, &quantity, &number);

    printf("\nOutput: %s %d %f\n", text, quantity, number);

    return 0;
}

有没有正确使用赋值抑制的方法?

Data Output - Example

如何让它从变量“数量”(%*d) 中删除数据,并正确打印。

%*d不会让它存储读取的内容,因此不应指定与之对应的指针。

此外,现在 quantity 未初始化且具有不确定的值,因此打印毫无意义。

#include <stdio.h>

int main()
{
    char text[20];
    float number;

    printf("Enter the data: ");
    scanf("%s %*d %f", text, &number);

    printf("\nOutput: %s %f\n", text, number);

    return 0;
}

当您使用赋值抑制时,不要为该匹配项提供参数:

scanf("%s %*d %f", text, &number);

至于“删除”quantity中的值,C没有这样的概念。因为没有初始化,所以它的值是不确定,所以在打印之前应该先初始化一下。