scanf中的“$%f”和“%f”之间有什么区别?

scanf中的“$%f”和“%f”之间有什么区别?,c,C,嗯。。我在学习C语言中的标准输入/输出文件系统时遇到了一个问题 “$%f”和“%f”有什么区别 int main() { int ctr; struct bookInfo books[3]; for (ctr = 0; ctr < 3; ctr++) { printf(" what is book #%d? \n", (ctr + 1)); gets(books[ctr].title);

嗯。。我在学习C语言中的标准输入/输出文件系统时遇到了一个问题

“$%f”和“%f”有什么区别

int main()
{
    int ctr;
    struct bookInfo books[3];

    for (ctr = 0; ctr < 3; ctr++)
    {
        printf(" what is book #%d? \n", (ctr + 1));
        gets(books[ctr].title);
        puts("who is author ? ");
        gets(books[ctr].author);
        puts("how much price this book?");
        scanf(" $%f", &books[ctr].price);
    }
    return 0;
}
%f只是普通的浮动,最后一次扫描中的美元只是一个符号:美元符号。实际上没有像$%f这样的字符。因为最后一次扫描需要书的价格,所以你应该在它前面加上美元,例如,20美元等于20美元。

%f只是正常的浮动,而最后一次扫描中的美元只是一个符号:美元符号。实际上没有像$%f这样的字符。因为最后一次扫描需要书的价格,所以您应该在它前面加上美元,例如,20美元等于20美元。

scanf$%f,&books[ctr]。价格;从标准输入扫描

0个或更多空格

一个单独的“$”。否则,扫描停止anscanf返回0或EOF

如果输入的文本与浮点数匹配,则它将保存在books[ctr].price中

scanf$%f,&books[ctr]。价格;从标准输入扫描

0个或更多空格

一个单独的“$”。否则,扫描停止anscanf返回0或EOF

如果输入的文本与浮点数匹配,则它将保存在books[ctr].price中


顺便说一句,代码将在第二个循环中失败。不要将GET与scanf.BTW混合,代码将在第二次循环中失败。不要将GET与scanf混用。但只需确认这一点-scanf$%f,&books[ctr]。价格;不行。你可以试试这个:打印这本书多少钱;扫描%f,&books[ctr]。价格;但只需承认这一点-scanf$%f,&books[ctr].price;不行。你可以试试这个:打印这本书多少钱;扫描%f,&books[ctr]。价格;