字符串输入
面向行的输入
cin的函数
getline()
getline()函数读取整行,以换行符(回车键)来确定输入结尾,但是不读取换行符。
可以使用 cin.getline() 来实现这个函数的使用,共有两个参数,第一个参数是 存储输入行的数组名称, 第二个参数是 要读取的字符数.
cin.getline(/*数组名称*/, /*要读取的字符数*/);
ps:实际读入的字符数会比我们所要求的读取字符数少,例如:我们第二个参数输入 \(20\),那么我们实际上最多可以读取到的字符数为 \(19\)。
为什么?因为字符串需要在末尾加上一个 '\0',表示结尾,会占据一个位置。
get()
get()函数读取整行,以换行符(回车键)来确定输入结尾,并且保留换行符。
cin.get()的参数实际上与cin.getline()的参数是一致的,它们只有是否保留换行符的区别,所以get()不做过多的介绍 (好像getline()也没怎么介绍的样子)
cin.get(/*数组名称*/, /*要读取的字符数*/);
这里要注意的是如果cin.get()不加参数或者没有长度参数的话只会读取一个字符,可见下文
gets()
这个与cin没有半毛钱关系了
这个函数会将一整行读入数组内,包含回车符。
gets(/*数组名*/);
面向区域的输入
cin
cin作为C++独有的输入对象,可以输入下一个空格或换行符前的所有字符。如:
Juro is so handsome.
如果我们用cin来输入字符的话,会依次截取“Juro”,“is”,“so”,“handsome”,来进行四次输入。
scanf
scanf是C++从C中继承下来的输入函数,我们可以用scanf进行和cin一样操作
char ch[20];
scanf("%s", ch); // 注意这里用的是s,表示string(字符串)
面向单个字符的输入
scanf
如:
char ch;
scanf("%c", &ch); // 注意这里用的是c,表示char(字符)
ps:注意如果用scanf读取单个字符的话需要加上取址符
getchar()
很简单粗暴的读取单个字符
char ch;
ch = getchar();
cin.get()
有两种使用方式
char ch;
// 方式一
ch = cin.get();
// 方式二
cin.get(ch);
如有遗漏,我会及时补充,大家也可在评论区分享