字符串输入操作

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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值