cin简单介绍
函数讲解:
1、cin
cin使用空白来确定字符串的结尾。空白:空格、制表符、换行符。
使用场景:在标准输入中,获取第一个单词,或者数字。在将字符串放到数组中,自动在结尾添加空字符。
例子:
char str[20];
cin >> str;
如果前台输入:NEW YEAR.
str数组存储的是NEW.
2、getline(字符地址, 字符长度)
getline通过回车键输入的换行符来确定结尾,然后丢弃换行符。
使用方法:cin.getline(字符地址, 字符长度)
例子:
char name[20];
cin.getline(name, 20);
如果前台输入:NEW YEAR.
name数组存储的是:NEW YEAR.
3、get(字符地址, 字符长度)
get通过回车键输入的换行符结尾,但是不丢弃输入队列的换行符。
例子:
(1)
char name[20];
char desser[20];
cin.get(name, 20);
cin.get(desser, 20);
如果输入:
HAPPY!
NEW YEAR!
name存储数据,desser存储是空的。
解决方法:
char name[20];
char desser[20];
cin.get(name, 20);
cin.get();
cin.get(desser, 20);
cin.get();
或者:
char name[20];
char desser[20];
cin.get(name, 20).get();
cin.get(desser, 20).get();
**注:如果读到空行,输入将被阻断,可以使用 **
cin.clear();
下面是简单的例子:
#include <iostream>
#include <stdlib.h>
using namespace std;
struct studentinfo
{
char first_name[50];
char last_name[50];
char deservegrade;
char Grade;
int age;
};
int main(void)
{
studentinfo student;
memset(&student, 0x0, sizeof(studentinfo));
cout << "first name?";
cin.getline(student.first_name, 50);
//cin >> student.first_name;
cout << "last name?";
cin.getline(student.last_name, 50);
//cin >> student.last_name;
cout << "deserve?";
cin >> student.deservegrade;
cout << "age?";
cin >> student.age;
student.Grade = (student.deservegrade - 1);
cout << "Name" << student.first_name << "," << student.last_name <<endl;
cout << "Grade" << student.Grade << endl;
cout << "Age" << student.age << endl;
system("pause");
return 0;
}
string替换char
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
struct studentinfo
{
string first_name;
string last_name;
char deservegrade;
char Grade;
int age;
};
int main(void)
{
studentinfo student;
memset(&student, 0x0, sizeof(studentinfo));
cout << "first name?";
getline(cin, student.first_name);
//cin >> student.first_name;
cout << "last name?";
getline(cin, student.last_name);
//cin >> student.last_name;
cout << "deserve?";
cin >> student.deservegrade;
cout << "age?";
cin >> student.age;
student.Grade = (student.deservegrade - 1);
cout << "Name" << student.first_name << "," << student.last_name <<endl;
cout << "Grade" << student.Grade << endl;
cout << "Age" << student.age << endl;
system("pause");
return 0;
}