当你#include<iostream>用cout等等。要using namespace std
而当你#include<iostream.h>用cout等等,什么。。不需要using namespace std;
----------------------------------------------------------------------------
cin.get()的用法:
(1)cin.get()函数本身就是输入一个字符的。比如:
char s[20];
cin.get(s);就会出现编译错误,
改成;char s;
cin.get(s);
就对了
(2)问题:下列程序中,为什么第二次cin。get()不能用??
#include<iostream.h>
void main()
{
char ch;
ch=cin.get();//读入一个大写字符
ch=ch+32;//通过ascii码把大写的字母转化为小写的 /*-------小写的ascii码比大写的大32;
cout<<ch<<endl;
char num;
num=cin.get();//读入字符类型的
int a;
a=num-48;
cout<<a<<endl;
}
答案:cin.get()是保留回车在输入流队列中的.而cin是丢弃回车的.
ch=cin.get();是第一次输入,因为是刚开始,所以没有回车保留在输入流的队列中.这时你输入一个字符,然后回车.get()收到回车或空格或制表符就停止输入了.此时,输入流队列中留下一个回车.
num=cin.get();这是第二次输入.因为第一次用了get,所以输入流队列中有个回车.则get()接受这个回车.又因为get()收到回车或空格或制表符就停止输入.所以这一次的输入就是一个回车.
可以num=cin.get();之前把回车给弄了.你应该想到了.就用cin.get();把第一次输入留下的回车给弄走.则num=cin.get()就可以正常了.
---------------------------------------------------------------------------
cin与cin.get()的比较:
1、cin>>
用法1:最基本,也是最常用的用法,输入一个数字:
#include <iostream>
using namespace std;
main ()
{
int a,b;
cin>>a>>b;
cout<<a+b<<endl;
}
输入:2[回车]3[回车]
输出:5
用法2:接受一个字符串,遇“空格”、“TAB”、“回车”都结束
#include <iostream>
using namespace std;
main ()
{
char a[20];
cin>>a;
cout<<a<<endl;
}
输入:jkljkljkl
输出:jkljkljkl
输入:jkljkl jkljkl //遇空格结束
输出:jkljkl
2、cin.get()
用法1: cin.get(字符变量名)可以用来接收字符
#include <iostream>
using namespace std;
main ()
{
char ch;
ch=cin.get(); //或者cin.get(ch);
cout<<ch<<endl;
}
输入:jljkljkl
输出:j
用法2:cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格
#include <iostream>
using namespace std;
main ()
{
char a[20];
cin.get(a,20);
cout<<a<<endl;
}
输入:jkl jkl jkl
输出:jkl jkl jkl
输入:abcdeabcdeabcdeabcdeabcde (输入25个字符)
输出:abcdeabcdeabcdeabcd (接收19个字符+1个'\0')
用法3:cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车
3、cin.getline() // 接受一个字符串,可以接收空格并输出
#include <iostream>
using namespace std;
main ()
{
char m[20];
cin.getline(m,5);
cout<<m<<endl;
}
输入:jkljkljkl
输出:jklj
接受5个字符到m中,其中最后一个为'\0',所以只看到4个字符输出;
如果把5改成20:
输入:jkljkljkl
输出:jkljkljkl
输入:jklf fjlsjf fjsdklf
输出:jklf fjlsjf fjsdklf
--------------------------------------------------------------------------------------------------
stdio.h就是指“standard input&output" 意思就是说标准输入输出头文件! 所以了,用到标准输入输出函数时,就要调用这个头文件!
int getchar() //从标准输入设备读入一个字符,显示 int putchar() //向标准输出设备写一个字符 int scanf(char *format[,argument…]) //从标准输入设备读入数据 int printf(char *format[,argument…]) //格式化字符串输入到标准输出设备 int puts(char *string) //输出一个字符串到标准输出设备 char *gets(char *string) //从标准输入设备读入一个字符串 int sprintf(char*string,char*format[,…])//格式化一个字符串输出到字符数组中,不显示
------------------------------------------------------------------------------------------------