C语言混合数据格式化输入怎么写代码
1个回答
关注
展开全部
亲,很高兴为您解答:scanf函数是格式化输入函数。对于这个题目是输入整型的数据,在这里就主要说一下%d格式的问题。我们通常输入好几个整数的时候,需要用分隔符来作为元素与元素间的分隔。在scanf函数里面,默认的分隔符,也称为空白字符,通常是空格、回车和TAB键比如在在scanf函数中输入(为了便于观察,空格用┌┐表示,回车用←┐表示):“1┌┐2┌┐3←┐”,在计算机的缓冲区里,存下的也是"1┌┐2┌┐3←┐"。除了这三个数外,还有三个字符。至于缓冲区是什么,大家可以理解为快递的仓库。 快递小哥把该地区各个地方的快递收集,暂时存放在大仓库里(输入)。 随后把输入的快递按照地址投放给客户(输出)。 注意:每投递出一个快递仓库就少一个物品,类比每从缓冲区读取一个数据,缓冲区就少一个数! 其实scanf函数是有返回值的。 就像快递一样,正确投放一个快递就会统计1个,没有正确投放就返回错误。 scanf函数的返回值是正确赋值的数量,如果遇到错误或end of file则返回EOF。接上刚刚那个例子:int a,c,e; char b,d,f; scanf("%d%c%d%c%d%c",&a,&b,&c,&d,&e,&f,); 输入1┌┐2┌┐3←┐则在计算机的内存里,a=1,b=空格,c=2,d=空格,e=3,f=回车从这个意义上说,这些字符其实跟普通的输入“数字”、“字母”是同样的东西。现在看我们常见的两个例子:int a,b,c; scanf("%d%d%d",&a,&b,&c); 输入1┌┐2┌┐3←┐ 则分别输出a,b,c的话结果是:1,2,3。。。。但如果这么写:char a,b,c; scanf("%c%c%c",&a,&b,&c); 输入1┌┐2┌┐3←┐ 则输出a,b,c的话结果是:1,┌┐,2。 在这里,输出的不是1,2,3,而是1,┌┐,2。而这里,就是我们需要解释的:不论在哪种情况下,缓冲区里存放的数据都是:1┌┐2┌┐3←┐(一共6个)在第一种情况下,对%d赋值在这种情况下,scanf函数会自动识别并忽略输入项前面的空白字符。 因此,它可以忽略2前面的空格,3前面的空格,回车既是字符也是输入结束的标志。
咨询记录 · 回答于2022-10-04
C语言混合数据格式化输入怎么写代码
这个怎么写代码呢?
亲,很高兴为您解答:scanf函数是格式化输入函数。对于这个题目是输入整型的数据,在这里就主要说一下%d格式的问题。我们通常输入好几个整数的时候,需要用分隔符来作为元素与元素间的分隔。在scanf函数里面,默认的分隔符,也称为空白字符,通常是空格、回车和TAB键比如在在scanf函数中输入(为了便于观察,空格用┌┐表示,回车用←┐表示):“1┌┐2┌┐3←┐”,在计算机的缓冲区里,存下的也是"1┌┐2┌┐3←┐"。除了这三个数外,还有三个字符。至于缓冲区是什么,大家可以理解为快递的仓库。 快递小哥把该地区各个地方的快递收集,暂时存放在大仓库里(输入)。 随后把输入的快递按照地址投放给客户(输出)。 注意:每投递出一个快递仓库就少一个物品,类比每从缓冲区读取一个数据,缓冲区就少一个数! 其实scanf函数是有返回值的。 就像快递一样,正确投放一个快递就会统计1个,没有正确投放就返回错误。 scanf函数的返回值是正确赋值的数量,如果遇到错误或end of file则返回EOF。接上刚刚那个例子:int a,c,e; char b,d,f; scanf("%d%c%d%c%d%c",&a,&b,&c,&d,&e,&f,); 输入1┌┐2┌┐3←┐则在计算机的内存里,a=1,b=空格,c=2,d=空格,e=3,f=回车从这个意义上说,这些字符其实跟普通的输入“数字”、“字母”是同样的东西。现在看我们常见的两个例子:int a,b,c; scanf("%d%d%d",&a,&b,&c); 输入1┌┐2┌┐3←┐ 则分别输出a,b,c的话结果是:1,2,3。。。。但如果这么写:char a,b,c; scanf("%c%c%c",&a,&b,&c); 输入1┌┐2┌┐3←┐ 则输出a,b,c的话结果是:1,┌┐,2。 在这里,输出的不是1,2,3,而是1,┌┐,2。而这里,就是我们需要解释的:不论在哪种情况下,缓冲区里存放的数据都是:1┌┐2┌┐3←┐(一共6个)在第一种情况下,对%d赋值在这种情况下,scanf函数会自动识别并忽略输入项前面的空白字符。 因此,它可以忽略2前面的空格,3前面的空格,回车既是字符也是输入结束的标志。