c 语言 格式化输出

#include <stdio.h>

int main()
{
    int i;
    unsigned int j;
    char input[ ]="10 0x1b aaaaaaaa bbbbbbbb";
    char s[5];

    sscanf(input,"%d %x %5[a-z] %*s %f",&i,&j,s,s);
    printf("%d %d %s\n",i,j,s);
 return 0;
}
%5[a-z]意思是最多匹配5个a-z的字符串。在格式化符中[...]的意义,匹配与[]中最长输入的非空字符
举两个例子:  如果你把改成这样  char input[ ]="10 0x1b aaa0aaaaa bbbbbbbb";  那么这是s只能是aaa,到0被截断,因为0不属于a-z。

  如果你把改成这样  char input[ ]="10 0x1b nothing bbbbbbbb";   [a-z]改为[a-p]  那么这是s只能是no,到t被截断,因为t不属于a-p。

  另外:最后一个%f在这里没什么用。

  
  %*s是什么意思,这个就是一个简单的跳过一个字符串,只用在输入格式控制。  还是举个例子:  char input[ ]="10 0x1b aaaa bbbb cccc";  sscanf(input,"%d %x %5[a-z] %*s %s",&i,&j,s,s);

  这样最后输出s中存的是cccc。  第一个%5[a-z],把aaaa读入了;然后紧接着是%*s意思是跳过一个字符串,也就是bbbb被跳过;第三个%s把cccc读入。  这个符号的目的就是可以让你有选择的读入,不需要的直接跳过
时间: 2024-08-04 14:37:48

c 语言 格式化输出的相关文章

C语言格式化输出小结

函数说明 在gcc编程中,我们常用到的字符格式化输出函数是printf的,实际上gcc继承了C语言处理字符具有强大功能的风格,它提供了一系列的格式化输出函数,主要存在两个库函数文件stdio.h/ stdarg.h中,具体函数如下: #include <stdio.h> printf, int printf(const char *format, ...); fprintf, int fprintf(FILE *stream, const char *format, ...); sprintf

c语言格式化输出大比拼

int main() { int64_t test = 100; printf("%lld\n",test); float f_test = 100.2123; printf("%f\n",f_test); scanf("%f",&f_test); printf("%f\n",f_test); } 格式输出浮点 double shoes = 10.23; printf("%-10.2f ok\n",

Debug格式化输出----基于C语言

Debug格式化输出----基于C语言 1. 使用宏实现 举例: #include <stdio.h> #define ECHO_COLOR_NONE "\033[0;0m" #define ECHO_COLOR_GREEN "\033[0;32m" #define debug(fmt, args...) printf(ECHO_COLOR_GREEN"Debug: " fmt "(file: %s, func: %s, l

Python自动化--语言基础2--运算符、格式化输出、条件语句、循环语句、列表、元组

运算符包括:算术运算符.比较运算符.赋值运算符.逻辑运算符.成员运算符.身份运算符 算术运算符 %   取模(余数) //  取相除的整数部分 /   (5/2=2.5) 比较运算符 ==  等于 !=  不等于 <   小于 >   大于 <=  小于等于 >=  大于等于 1 if a==b: 2 print(1) 3 else: 4 print(2) 赋值运算符 a+=b   等于 a=a+b a-=b          a=a-b a*=b          a=a*b a

go语言基础之格式化输出

1.fmt包的格式化输出输入 格式说明 格式 含义 %% 一个%字面量 %b 一个二进制整数值(基数为2),或者是一个(高级的)用科学计数法表示的指数为2的浮点数 %c 字符型.可以把输入的数字按照ASCII码相应转换为对应的字符 %d 一个十进制数值(基数为10) %e 以科学记数法e表示的浮点数或者复数值 %E 以科学记数法E表示的浮点数或者复数值 %f 以标准记数法表示的浮点数或者复数值 %g 以%e或者%f表示的浮点数或者复数,任何一个都以最为紧凑的方式输出 %G 以%E或者%f表示的浮

go语言之数据类型和格式化输出

1.数据类型 package main import ( "fmt" "reflect" ) func main() { //整形 var v1 int32 v1 = 123 v2 := 64 fmt.Println(v1,v2,reflect.TypeOf(v2)) //123 64 int //浮点型 var f1 float32 f1 = 12 f2 := 12.0 fmt.Println(f1,f2,reflect.TypeOf(f2)) //12 12 f

一起talk C栗子吧(第十八回:C语言实例--输出十六进制)

各位看官们,大家好,从今天开始,我们讲大型章回体科技小说 :C栗子,也就是C语言实例.闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们,上一回中咱们说的是栈的例子,这一回咱们说的例子是:输出十六进制. 看官们,我想熟悉C语言的朋友们,对于输出十六进制的内容,肯定都会使用printf函数进行格式化输出. 不过,有时候想输出十六进制时就会有点"不识庐山真面目,只缘身在此山中"的感觉.我在前面的例子中 有一个关于进制转换的例子.当时输出十六进制时使用分别判断10到15,然后依据判

【Python④】python恼人的字符串,格式化输出

恼人的字符串 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,也就是大小写英文字母.数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母a的编码是97. 但是要处理中文至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去.全世界有上百种语言,为了扩充ASCII编码,用于显示本国的语言,不同的国家和地区制定了不同的标准,由此产生

C++ cout 格式化输出方法

C语言里可以用printf(),%f来实现浮点数的格式化输出,用cout呢...? iomanip是I/O流控制头文件,就像printf的格式化输出一样. 以下是一些常用的: dec 置基数为10 相当于"%d"hex 置基数为16 相当于"%X"oct 置基数为8 相当于"%o"setfill(c) 设填充字符为csetprecision(n)   设显示小数精度为n位setw(n) 设域宽为n个字符setioflags(ios::fixed)