输入输出函数和i++与++i的区别
来源:互联网 发布:hadoop2.7 java开发 编辑:程序博客网 时间:2024/06/12 20:38
1.atoi函数
作用:把字符串转化成数字,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零。
范例:#include<stdlib.h>
#include<stdio.h>
int main(void)
{
float n;
char*str="12345.67";
n=atoi(str);
printf("string=%s ,integer=%f\n",str,n);
return 0;
}
输出结果:string = 12345.67 integer = 12345.000000
解释:string的输出结果是一个字符串,所以完整输出;而atoi函数遇到非数字时会停止,所以在遇到小数点时停止了,结果就变成了12345.67.
2.scanf,gets和getchar的比较
不同点:1、 gets函数读取数据时,接受的数据包括数据和回车符。即:读取数据后输入流没有输入 操作动作。
2、 scanf函数读取数据时,接受的数据只有数据,不包括回车符。即:读取数据后输入流 还存在回车符操作动作。
3、 getchar函数读取一个字符数据时,接受的数据只有一个字符,不包括回车符。即: 读取一个字符数据后就默认输入数据结束。读取数据后输入流还存在回车符操作动作。
4、scanf与gets相似,但不完全相同,使用scanf("%s",&s);函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。
5、gets函数取数不经过缓冲区,而scanf取数有缓冲区。
相同点 1 scanf,gets和getchar都是从键盘输入数据然后读取的函数。
在从键盘取字符型常量时,如果前面还有一个scanf的函数,可以用getchar去清除上一句缓冲区的\n,否则会直接跳过读取字符型变量这一步。
3.++i和i++的区别
++i先自加后使用,i++是先使用完毕后再加
++i和i++定义不难理解,关键是实际操作不一定会了。
范例 i的初值都为2
(1)num=(i++)+(i++)+(i++)+(i++);
(2)num=(i++)+(++i)+(++i)+(++i);
(3)i=(i++)+(++i)+(i++)+(++i);
(4)int fun(int a,int b)(程序不完整)
{
printf("%d %d\n",a,b);
return 0
}
int main()
{
int i=2;
fun(i++,++i);
return 0;
}
结果:(1)num=2+2+2+2=8 i=2+1+1+1+1=6
(2)num=4+4+5+6=19i=6
(3)i=3+3+3+4+2=15
(4)a=3,b=4
作用:把字符串转化成数字,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零。
范例:#include<stdlib.h>
#include<stdio.h>
int main(void)
{
float n;
char*str="12345.67";
n=atoi(str);
printf("string=%s ,integer=%f\n",str,n);
return 0;
}
输出结果:string = 12345.67 integer = 12345.000000
解释:string的输出结果是一个字符串,所以完整输出;而atoi函数遇到非数字时会停止,所以在遇到小数点时停止了,结果就变成了12345.67.
2.scanf,gets和getchar的比较
不同点:1、 gets函数读取数据时,接受的数据包括数据和回车符。即:读取数据后输入流没有输入 操作动作。
2、 scanf函数读取数据时,接受的数据只有数据,不包括回车符。即:读取数据后输入流 还存在回车符操作动作。
3、 getchar函数读取一个字符数据时,接受的数据只有一个字符,不包括回车符。即: 读取一个字符数据后就默认输入数据结束。读取数据后输入流还存在回车符操作动作。
4、scanf与gets相似,但不完全相同,使用scanf("%s",&s);函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。
5、gets函数取数不经过缓冲区,而scanf取数有缓冲区。
相同点 1 scanf,gets和getchar都是从键盘输入数据然后读取的函数。
在从键盘取字符型常量时,如果前面还有一个scanf的函数,可以用getchar去清除上一句缓冲区的\n,否则会直接跳过读取字符型变量这一步。
3.++i和i++的区别
++i先自加后使用,i++是先使用完毕后再加
++i和i++定义不难理解,关键是实际操作不一定会了。
范例 i的初值都为2
(1)num=(i++)+(i++)+(i++)+(i++);
(2)num=(i++)+(++i)+(++i)+(++i);
(3)i=(i++)+(++i)+(i++)+(++i);
(4)int fun(int a,int b)(程序不完整)
{
printf("%d %d\n",a,b);
return 0
}
int main()
{
int i=2;
fun(i++,++i);
return 0;
}
结果:(1)num=2+2+2+2=8 i=2+1+1+1+1=6
(2)num=4+4+5+6=19i=6
(3)i=3+3+3+4+2=15
(4)a=3,b=4
1 0
- 输入输出函数和i++与++i的区别
- i++与++i的区别
- i++与++i的区别
- i++与++i的区别
- i++与++i的区别
- i++与++i的区别
- i++与++i的区别
- ++i;与i++的区别
- ++i与i++的区别
- i++与++i的区别
- i++与++i的区别
- ++i与i++的区别
- i++与++i的区别
- i++与++i的区别
- i++与++i的区别
- ++i 与i++的区别
- i++与++i的区别
- i++与++i的区别
- UIImage+BlendMode
- 深入探索Servlet
- 【转】浅析Java中的final关键字
- Tmux的强大
- VirtualBox内Linux系统怎样与Windows共享文件夹
- 输入输出函数和i++与++i的区别
- BZOJ 1501([NOI2005]智慧珠游戏-DLX)
- TextView展示指定的文本内容
- Git服务之gogs部署安装
- Universal-Image-Loader,android-Volley,Picasso、Fresco和Glide五大Android开源组件加载网络图片的优缺点比较
- VC Dimension
- Jquery easyui开启行编辑_增删改操作及新增就能编辑
- Sql server 维护计划-备份
- Android 自定义View实现竖直跑马灯效果