gpt4 book ai didi

c - 了解 fprintf 语法

转载 作者:太空狗 更新时间:2023-10-29 15:17:40 24 4
gpt4 key购买 nike

我对 C 知之甚少,但我正在尝试理解用它编写的程序。

我遇到过这条线,但不确定它是什么意思:

fprintf(kinsh.fp, "%-.*lg", ndigits, kins[i+j*n]);

我认为这意味着“将带有 ndigits 小数位或有效数字(以较短者为准)的数字打印到 kinsh(这是一个文件)。但是,我不不知道 kins,这是一个数组,在里面做什么。

我是否误解了 - 在上下文中,如果该行是从 kinsh 读取并写入 kins 会更有意义吗?

最佳答案

fprintf函数定义如下:

int fprintf ( FILE * stream, const char * format, ... );

因此,kinsh.fpFILE 指针。现在格式字符串 "%-.*lg" 是一个 C 格式字符串,这意味着:

  1. - 表示左对齐
  2. . 之后的任何内容都表示精度。
  3. * 表示精度不是硬编码的,而是作为参数提供的,它是格式字符串后的第一个参数,即 ndigits
  4. lg 将被C99 编译器视为doubleLg 是long double。 (@mafso 在评论中提到,lg 是 C89 中的未定义行为)
  5. 实际数据在kins[i+j*n]中。

编辑

是做什么的:该语句写入一个 long double 值,存储在 kins[i+j*n] 中,精度为 ndigits,左对齐,在指向的文件中通过 kinsh.fp

通用格式字符串格式为:%[parameter][flags][width][.precision][length]type

关于c - 了解 fprintf 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28367670/

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