Dar*_*ust 160
printf有可能,它是这样的:
printf("%.*s", stringLength, pointerToString);
Run Code Online (Sandbox Code Playgroud)
无需复制任何内容,无需修改原始字符串或缓冲区.
Tob*_*obu 22
以下是对如何%.*s工作以及指定位置的说明.
printf模板字符串中的转换规范具有以下一般形式:
Run Code Online (Sandbox Code Playgroud)% [ param-no $] flags width [ . precision ] type conversion要么
Run Code Online (Sandbox Code Playgroud)% [ param-no $] flags width . * [ param-no $] type conversion
第二种形式是从参数列表中获取精度:
您还可以指定'*'的精度.这意味着参数列表中的下一个参数(在要打印的实际值之前)用作精度.该值必须为int,如果为负,则忽略该值.
- glibc手册中的输出转换语法
对于%s字符串格式,精度具有特殊含义:
可以指定精度来指示要写入的最大字符数; 否则,字符串中最多但不包括终止空字符的字符将写入输出流.
- glibc手册中的其他输出转换
其他有用的变种:
"%*.*s", maxlen, maxlen, val 将右对齐,之前插入空格;"%-*.*s", maxlen, maxlen, val 将是左倾的.小智 20
你可以使用fwrite()来stdout!
fwrite(your_string, sizeof(char), number_of_chars, stdout);
Run Code Online (Sandbox Code Playgroud)
这样您就可以将第一个字符(number_of_chars变量中定义的数字)输出到文件,在本例中为stdout(标准输出,您的屏幕)!
printf("%.*s", length, string) 不管用.
这意味着打印UP TO长度字节或空字节,以先到者为准.如果非空终止的char-char字符在长度之前包含空字节,则printf将停止在那些字节上,而不是继续.
| 归档时间: |
|
| 查看次数: |
46866 次 |
| 最近记录: |