C++ 常用输入有:cin、cin.get( )、cin.getline( )
C常用输入:getline( )、gets( )
1、cin:-- 相当于scanf
功能:输入字符串到字符输出,遇空格、Tab、回车结束
代码:
- //输入字符串到字符数组
- #include <iostream>
- using namespace std;
- void main()
- {
- const int len =100;
- char ch[len];
- cin>>ch;
- system("pause");
- }
//输入字符串到字符数组
#include <iostream>
using namespace std;
void main()
{
const int len =100;
char ch[len];
cin>>ch;
system("pause");
}
输入:ab cd
数组接受的值:ab
功能:输入字符串到 字符串 输出,遇空格、Tab、回车结束
代码:
- //输入字符串到字符串中
- #include <iostream>
- #include <string>
- using namespace std;
- void main()
- {
- string a;
- cin>>a;
- system("pause");
- }
//输入字符串到字符串中
#include <iostream>
#include <string>
using namespace std;
void main()
{
string a;
cin>>a;
system("pause");
}
输入:ab cd
字符串接受的值:ab
2、ch=cin.get();
功能:输入字符,遇空格、Tab、回车结束
代码:
- //输入字符
- #include <iostream>
- #include <string>
- using namespace std;
- void main()
- {
- char ch;
- ch=cin.get();
- cout<<ch;
- system("pause");
- }
//输入字符
#include <iostream>
#include <string>
using namespace std;
void main()
{
char ch;
ch=cin.get();
cout<<ch;
system("pause");
}
输入:abcd
字符接受的值:a
3、cin.getline(ch,len); -- 相当于gets( )
功能:输入字符串,遇回车结束
代码:
- //输入一行,可以包含空格,遇回车结束
- #include <iostream>
- using namespace std;
- void main()
- {
- const int len=5;
- char ch[len];
- cin.getline(ch,len);//len表示接受的最大字符数
- cout<<ch;
- system("pause");
- }
//输入一行,可以包含空格,遇回车结束
#include <iostream>
using namespace std;
void main()
{
const int len=5;
char ch[len];
cin.getline(ch,len);//len表示接受的最大字符数
cout<<ch;
system("pause");
}
输入:12345678
输出:1234(最大长度为5,实际存4个,还有接个结束符\0)
4、cin.getline()与二维数组连用
- #include <iostream>
- #include <string>
- using namespace std;
- void main()
- {
- char ch[3][81];
- for (int i=0;i<3;i++)
- {
- cin.getline(ch[i],81);
- }
- for (int j=0;j<3;j++)
- {
- cout<<ch[j]<<endl;
- }
- system("pause");
- }
#include <iostream>
#include <string>
using namespace std;
void main()
{
char ch[3][81];
for (int i=0;i<3;i++)
{
cin.getline(ch[i],81);
}
for (int j=0;j<3;j++)
{
cout<<ch[j]<<endl;
}
system("pause");
}
注意:
实际应用:接受单个字符,使用cin,接收字符串cin.getline( )
原因:虽然cin.get( )不仅可以接受字符,还可以接受字符串。但是接受完数据后,还会有回车在缓冲区中,下次在接受数据时,会自动把这个回车给下个变量,这就会产生问题,要想使用它,还要在cin.get( )语句后面接受回车。使用cin.get( ).
错误代码:
- #include <iostream>
- #include <string>
- using namespace std;
- void main()
- {
- char ch;
- ch=cin.get();
- cout<<ch;
- ch=cin.get();
- cout<<ch;
- system("pause");
- }
#include <iostream>
#include <string>
using namespace std;
void main()
{
char ch;
ch=cin.get();
cout<<ch;
ch=cin.get();
cout<<ch;
system("pause");
}
正确代码:
- #include <iostream>
- #include <string>
- using namespace std;
- void main()
- {
- char ch;
- ch=cin.get();
- cin.get();// 接收回车
- cout<<ch;
- ch=cin.get();
- cin.get(); //接收回车
- cout<<ch;
- system("pause");
- }
#include <iostream>
#include <string>
using namespace std;
void main()
{
char ch;
ch=cin.get();
cin.get();// 接收回车
cout<<ch;
ch=cin.get();
cin.get(); //接收回车
cout<<ch;
system("pause");
}