printf("%*s%s/\n",depth," ",entry->d_name)里的%*s是什么意思啊

发布网友 发布时间:2022-04-22 14:39

我来回答

3个回答

热心网友 时间:2023-11-09 05:51

%*s里的*用depth的值代替,如果depth=5;的话,就与下面的等效:printf("%5s%s/\n"," ",entry->d_name)。

Linux的类ls程序,格式里面有几个控制符有三个:* 对应 depth %s %s,C语言里面的控制输出字符串宽度的,如%2s。

%c表示输出一个字符;

%d表示输出带符号的十进制整型数;

%s表示输出一个字符串,知道遇到“\0”。

所以printf("%c,%d,%s\n",c,i,s);的意思是c变量用字符形式输出;i变量用十进制整型数形式输出;s变量用字符串形式输出。

printf()函数是式样化输出函数, 一般用于向准则输出设备按规定式样输出消息。正在编写步骤时经常会用到此函数。printf()函数的挪用式样为:     printf("<式样化字符串>",<参数表>)。

扩展资料:

printf 的格式控制字符串 format 中的转换说明组成如下,其中 [] 中的部分是可选的:

%[flags][width][.precision][length]specifier,即:%[标志][最小宽度][.精度][类型长度]说明符。转换说明详解见下文。

附加参数 -- 根据不同的 format 字符串,函数可能需要一系列的附加参数,每个参数包含了一个要被插入的值,替换了 format 参数中指定的每个 % 标签。参数的个数应与 % 标签的个数相同。

printf 函数在输出格式 format 的控制下,将其参数进行格式化,并在标准输出设备(显示器、控制台等)上打印出来。如果函数执行成功,则返回所打印的字符总数,如果函数执行失败,则返回一个负数。 

参考资料来源:百度百科-printf

热心网友 时间:2023-11-09 05:52

%*s里的*用depth的值代替,如果depth=5;的话,就与下面的等效:
printf("%5s%s/\n"," ",entry->d_name);

热心网友 时间:2023-11-09 05:52

Linux的类ls程序吧~可能你没明白你的格式里面有几个控制符~其实有三个~* 对应 depth %s %s不用说吧~C语言里面的控制输出字符串宽度的~如%2s

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com