字符串输入

面向行的输入

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);

如有遗漏,我会及时补充,大家也可在评论区分享

posted @ 2022-07-15 20:33  Juro  阅读(193)  评论(0编辑  收藏  举报