c语言输入scanf("%1[1234]d%*c", &choice);这是什么意思,那个格式字符串?
只接收1、2、3、4四种字符,每次只接收一个,然后跳过一个字符。比如当输入12345678,则choice只接收1。如果开头不是1、2、3、4,则什么都不接收。至于这么做想达到什么逻辑目的,没有代码说不上来。
%1[1234]是一个控制符,%后面的1是说只接收一个字符,[1234]意思是只接收1、2、3、4四个字符组成的字符序列。
合起来意思就是只接收1、2、3、4四个字符中的任何一个赋给对应的变量choice。如果输入的不是1、2、3、4这四个字符,则按出错处理,不赋给应的变量choice。后面%*c是一个控制符,意思是跳过一个字符,比如连写两行或在循环中scanf("%1[1234]d%*c", &choice);,输入12341234,那么第一行接收1,第二行接收3,2被跳过去了(实质是接收了但不赋给任何变量)。
关于那个d,它夹在两个控制符之间,本来按scanf格式化控制符的规则,之间夹了什么字符就在输入时输入这个字符,可这里d后是跳过控制符,所以有了d,再按如上写两行或循环测试时,跳过的刚好是等待输入的d,就不会第一行接收1,第二行接收3……了,而是第一行接收1,第二行接收2,第三行接收3……——不知我说清楚了没有……。
问:C语言C语言为了准备三级网络技术上机考试,c语言至少要看到那一章节?
答:数据类型、输入输出、选择语句、循环语句、数组、指针、函数、文件详情>>
答:网上买2手的也就几块钱而已详情>>