目前学习用于输入字符数组两大函数

2024-01-10 12:20:21
第一个:cin.getline函数

代码(? ? 以char str[1001]为例? ?):

cin.getline(str, 1000);

解释:

? ? ?

cin.getline(str, 1000);?是C++中用于从标准输入(通常是键盘)读取一行字符串的语句。这里,cin?是C++标准库中用于输入的流对象,而?getline?是一个成员函数,用于读取一行字符串。

具体来说,cin.getline(str, 1000);?的功能如下:

  1. 它从标准输入读取最多999个字符(最后一个字符是空字符\0,用于标记字符串的结束)并存储在?str1?中。
  2. 如果用户输入的字符数少于999个,那么?str1?会包含用户输入的所有字符,并且后面会自动加上空字符?\0
  3. 如果用户输入了1000个或更多的字符,那么只有前999个会被存储在?str1?中。超过部分会被忽略。
  4. 在读取之后,该函数还会检查并删除行末的换行符(如果存在)。
第二个:fgets函数

代码:

fgets(str,sizeof(str),stdin);

解释:

? ? ??

fgets(str, sizeof(str), stdin);?是C语言中用于从标准输入读取一行字符串的函数调用。下面我将详细解释这个函数调用的每个部分:

  1. fgets: 这是C标准库中的一个函数,用于从指定的流中读取数据。在这里,它是从标准输入流?stdin?中读取数据。
  2. str: 这是一个字符数组,用于存储从输入流中读取的数据。
  3. sizeof(str): 这是一个C语言操作符,它返回其操作数(在这里是字符数组?str)的大小(以字节为单位)。这个大小包括数组的末尾的空字符?\0
  4. stdin: 这是一个预定义的文件指针,指向标准输入流。在大多数情况下,它对应于键盘输入。

函数的工作原理如下:

  • fgets?从?stdin(标准输入)读取数据,直到遇到换行符(\n)、读取了?sizeof(str) - 1?个字符,或者读取了文件结束符(EOF),以先出现的情况为准。
  • 读取的数据(包括可能的换行符)被存储在?str?中。

这个函数调用通常用于从用户那里获取一行输入,并确保不会发生缓冲区溢出(因为最多只会读取?sizeof(str) - 1?个字符到?str?中)。

一个用不了用另外一个,简简单单。

文章来源:https://blog.csdn.net/2301_80284843/article/details/135437940
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。