1.cin

用法1:最基本,也是最常用的用法,输入一个数字:

#pragma warning(disable:4996)
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
int main()
{
int a, b;
cout << "输入两个数字a和b,用空格或回车隔开" << endl;
cin >> a >> b;
cout << a + b << endl;
system("pause");
return EXIT_SUCCESS;
}

输入:

2
3

输出:

5

注意:>> 是会过滤掉不可见字符(如 空格 回车,TAB 等)

cin  >>  noskipws  >>input[j];//不想略过空白字符,那就使用 noskipws 流控制

用法2:接受一个字符串,遇“空格”、“TAB”、“回车”都结束

#pragma warning(disable:4996)
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
int main()
{
char a[20];
cout << "请输入一段字符串保存到数组a中:" << endl;
cin >> a;
cout << a << endl;
system("pause");
return EXIT_SUCCESS;
}

输入:

请输入一段字符串保存到数组a中:
ajhjhjsdahj

输出:

ajhjhjsdahj
请按任意键继续. . .

2.cin.get()

用法1: cin.get(字符变量名)可以用来接收字符

#pragma warning(disable:4996)
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
int main()
{
char ch;
cout << "输入一个字符用ch保存" << endl;
ch = cin.get();//或者cin.get(ch);
cout << ch << endl; system("pause");
return EXIT_SUCCESS;
}

输入:

输入一个字符用ch保存
44444

输出:

4
请按任意键继续. . .

用法2:cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格

#pragma warning(disable:4996)
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
int main()
{
char a[20];
cout << "请输入一段字符串(长度小于20)用数组a保存:" << endl;
cin.get(a, 20);
cout << a << endl; system("pause");
return EXIT_SUCCESS;
}

输入:

请输入一段字符串(长度小于20)用数组a保存:
ajajdjjjsjsjdjsjidvlsjdfvuaesduio

输出:

ajajdjjjsjsjdjsjidv
请按任意键继续. . .

3.getline()

getline()函数是来完成读入一行数据。

在C++中本质上有两种getline函数:

第一种:在头文件<istream>中,是iostream类的成员函数。

第二种:在头文件<string>中,是普通函数。

(1)在头文件<istream>中,是iostream类的成员函数。

在<istream>中的getline()函数有两种重载形式:

istream& getline (char* s, streamsize n );//作用是: 从istream中读取至多n个字符(包含结束标记符)保存在s对应的数组中。
istream& getline (char* s, streamsize n, char delim );//还没读够n个字符如果遇到delim 或 字数达到限制,则读取终止,delim都不会被保存进s对应的数组中。

接受一个字符串,可以接收空格并输出

#pragma warning(disable:4996)
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
int main()
{
char m[20];
cout << "请输入一个字符串,可以接收空格并输出" << endl;
cin.getline(m, 5);
cout << m << endl; system("pause");
return EXIT_SUCCESS;
}

输入:

请输入一个字符串,可以接收空格并输出
12 22 22 33

输出:

12 2
请按任意键继续. . .

注意:接受5个字符到m中,其中最后一个为'\0',所以只看到4个字符输出;

cin.getline()实际上有三个参数,cin.getline(接受字符串的m,接受个数5,结束字符)

当第三个参数省略时,系统默认为'\0'

如果将例子中cin.getline()改为cin.getline(m,5,'a');当输入1212时输出1212,输入12a2al时,输出12

(2)在头文件<string>中,是普通函数。

在<string>中的getline函数有四种重载形式:

istream& getline (istream&  is, string& str, char delim);
istream& getline (istream&& is, string& str, char delim);
istream& getline (istream& is, string& str);
istream& getline (istream&& is, string& str);

用法和上第一种类似,但是读取的istream是作为参数is传进函数的。读取的字符串保存在string类型的str中。

函数的变量:

is :表示一个输入流,例如 cin。

str :string类型的引用,用来存储输入流中的流信息。

delim :char类型的变量,所设置的截断字符;在不自定义设置的情况下,遇到’\n’,则终止输入。

例程代码:

#pragma warning(disable:4996)
#define _CRT_SECURE_NO_WARNINGS 1
//2023年2月8日22:22:27
//8.7strquote.cpp--不同的设计
#include <iostream>
#include <string> int main() {
std::string name;
std::cout << "Please input your name: ";
std::getline(std::cin, name);
std::cout << "Welcome to here!" << std::ends << name << std::endl;
std::cout << std::endl; system("pause");
return EXIT_SUCCESS;
}

在输入时,直至遇到‘\n’或EOF, 才终止输入操作。

输入:

Please input your name: wonderful

输出:

Welcome to here!wonderful

5、gets()

6、getchar()

参考资料

[1]C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法 - flatfoosie - 博客园 (cnblogs.com)

[2]C++:cin、cin.getline()、getline()的用法 - AndyJee - 博客园 (cnblogs.com)

[3]C++ getline函数用法 - 萧飞IDO - 博客园 (cnblogs.com)

参考资料来源于黑马程序员等

53.cin、cin.get()、cin.getline()、getline()、gets()等函数的用法的更多相关文章

  1. C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法----细节决定成败 (sort用法)

    C++中cin.cin.get().cin.getline().getline().gets()等函数的用法 学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结,为了自己复习,也希望对后来者能有 ...

  2. C++中关于cin、cin.get()、cin.getline()、getline()、gets()等函数的用法

    1.cin>> 用法1:最基本,也是最常用的用法,输入一个数字: 注意:>> 是会过滤掉不可见的字符(如 空格 回车,TAB 等) cin>>noskipws> ...

  3. C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法

    学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行) 1.cin 2.cin.get ...

  4. cin、cin.get()、cin.getline()、getline()、gets()等函数的用法

    学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)转载请保留作者信息:1.cin1 ...

  5. (转)cin、cin.get()、cin.getline()、getline()、gets()等函数的用法

    学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)转载请保留作者信息:1.cin1 ...

  6. C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法(转)

    学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行) 1.cin 2.cin.get ...

  7. STL中流相关的输入输出符和get函数彻底总结:cin、cin.get()、cin.getline()、getline()、gets()等函数的用法

    我的总结: [首先:对于流来说,就把流看成一个中转的仓库,对流进行<<运算或>>运算或者get函数的运算都是指,把“流”中的数据“运送”到“内存变量”中去,还是把内存变量中的数 ...

  8. [原创]cin、cin.get()、cin.getline()、getline()、gets()、getchar()的区别

    这几个输入函数经常搞不清具体特点和用法,这里稍作总结 一.cin>> 1.最基本用法,输入一个变量值 2.输入字符串,遇“空格”.“TAB”.“回车”结束,比如输入“hello world ...

  9. [转载]cin、cin.get()、cin.getline()、getline()、gets()函数的用法

    1.cin>>           用法1:最基本,也是最常用的用法,输入一个数字: #include <iostream>using namespace std;main ( ...

  10. cin详解(cin.get()、cin.getline()、cin.clear()、cin.sync())

    在C中,输入输出用scanf和printf,在输入数据的同时还需说明数据的类型,如果输入数据较多,那就很麻烦,而C++中也有相似的东西cin和cout,它们来自C++的一个名叫" iostr ...

随机推荐

  1. 简单的WPF客户端应用开发

    1.使用vs创建一个新项目,选择wpf应用 2.创建好项目,在视图=>工具箱,选择要使用的部件 3.单击部件可以改变部件的显示信息,即content的内容就是显示的信息,name为部件的名称,在 ...

  2. Spring boot jar包解压后重新压缩命令

    进入解压的目录/demo,运行 jar cvfM0 demo.jar * 压缩后的项目即可运行 参考:https://www.cnblogs.com/liyanbin/p/6088458.html

  3. UF_OBJ_delete_array_of_objects函数vector转数组用法

        1 UF_initialize(); 2 std::vector<tag_t>tool_tag; 3 tag_t ObjectTag = NULL_TAG; 4 int Type, ...

  4. 20192305 王梓全Python程序设计实验四报告

    20192305 王梓全Python程序设计实验四报告 课程:<Python程序设计> 班级: 1923 姓名: 王梓全 学号:20192305 实验教师:王志强 实验日期:2021年6月 ...

  5. 在windows下使用dbus

    介绍 DBUS是一种很方便的IPC远程调用的通信机制.可以很方便地调用其他进程提供的函数,甚至是不同计算机上提供的函数,内部通过TCP套接字进行相互通信. 不过甚至你可以修改成其他通信方式,比如USB ...

  6. count(1) and count(*),count(字段)区别及效率比较

    执行结果: count(1)和count(*)之间没有区别,因为count(*)count(1)都不会去过滤空值, count(字段) 会统计该字段在表中出现的次数,忽略字段为null 的情况.即不统 ...

  7. c++学习2 基础关键词

    三 volatile强制访问内存 在一个变量的频繁使用中,系统为了提高效率,会自动将内存里面的数据放入CPU里的寄存器里.但在某些特殊场景下,放入寄存器这个操作反倒会导致CPU无法及时获取最新的一手数 ...

  8. vue项目浏览器ioc小图标

    1 先有一个需要图片,png .jpg ...格式都可以 2 把图片转换成 .con 格式的图标  ,http://www.bitbug.net/使用比特虫转换 ,目标尺寸:16*16 或者 32*3 ...

  9. 在 Linux 上使用《算法》第4版官网中的 algs4.jar 包

    使用<算法>第4版( Algorithms Fourth Edition ) 中的 algs4.jar 包 下载 algs4.jar 官网网址: https://algs4.cs.prin ...

  10. Git本地仓库的文件夹不显示红色感叹号、绿色对号等图标

    参考 https://blog.csdn.net/Elon15/article/details/125898375 主要是  在文件名前加8个空格(最少8个)!!!!