C语言打印输出函数printf问题

C语言打印输出函数printf问题,第1张

\r只是将光标移动到行首

\n只是将光标移动到下一行

上面的都不会改变已经输出的字符,即\r不会删除字符,\n也不会将后面的字符改到下一行,都仅仅是光标的移动而已。

printf输出和我们在文本 *** 作里面的回车不一样的。

自己写很麻烦,涉及机器内浮点数写法定义(IEEE 754 浮点数表示法),涉及10进制到2进制,再由2进制转10进制转换和截断误差。

投机取巧办法如下:

#include <stdioh>

main()

{

float x=1234;

char str[30];

int i,L;

sprintf(str,"%g",x);

L = strlen(str);

for (i=0;i<L;i++) putchar(str[i]);

return 0;

}

当你输入“12

s“时,

b的值就是一个未初始化的值,具体值要看当前栈上是什么数据,总之就是一个不确定的值。最重要的一点,b的值并没有因为scanf("%d

%d,

&a,

&b);这条语句而发生变化。

你可以在定义b的地方给b一个初始值,比如5:

int

a,

b=5;

然后运行程序,输入“12

s“,你会发现输出b的值,仍然为5

Systemoutprintf("%d,%s", f1,",");//第19行

^ ^

出现逗号 再次出现逗号

printf("for(i=1;i<=100;i++)\n\tscanf(\"%d\",&a);");

见到换行用\n代替,见到跳格用\t代替,见到双引号用\"代替

covert函数的参数是一个整数指针,作用是将指针指向的区域的值先返回(!),然后将那块区域的值加1;

在main函数中两次调用covert函数,第一次将data的地址传递给covert函数,于是data的值加1,变成57,第一次调用的返回值是56,但是并没有使用,因此第一个printf输出值是57;

第二次同样把data的地址传递给convert函数,这次调用同样是使data的值加1,变成58,covert函数的返回值是57;但是“data = convert(&data);”导致data被赋值为convert函数的返回值57,因此第二个printf输出值同样是57。

以上就是关于C语言打印输出函数printf问题全部的内容,包括:C语言打印输出函数printf问题、printf函数浮点数的输出、c语言问题 如果我向一个整型变量输入字符 printf输出的是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9747810.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存