字符串的输入有6中方式,这六种方式各有各的特点,我这篇学习笔记是自己的经验总结,没有去探讨内存,函数库等的复杂问题,仅仅是为了实用:

第一:cin

  cin一次接受一个字符,所以有的人会选择定义一个字符型数组,然后用cin循环进行输入,但是cin的局限性是:遇到空格就会停止接受字符;

第二:ch1=cin.get();

  作用也是接受一个字符,然后赋值给char类型的ch1,输出ch1;

第三:cin.get(ch2);

  作用还是接受一个字符,和第二个一样,只不过形式不同,输出ch2;

第四:cin.get(buff1,6);

  这里是cin.get()的第二个用法,参数表里面带有3个参数,第三个参数不写就默认为‘\n’;解释一下,第一个参数是要接受字符的字符串数组Buff1,第二个是要就收的字符的个数+1后的数;

第五:cin.getline(buff1,5,'s')

  cin.getline()与cin.get()是差不多的,就是用getline就要包含#include<string>;而且它不把结束字符输出;

第六:getline(cin,str);

最后一个getline(cin,str);

  解释一下参数表,cin一定要写上去,str这是获取一行后所存放的字符串名称;

最后给出一段把六种情况整合在一起的代码:

ps:我的编译器是VS2012


字符串的输入输出
cin
ch1=cin.get();
cin.get(ch2);


cin.get(buff1,6);
cin.getline(buff1,5,'s')
getline(cin,str);
*/
#include<iostream>
#include<string>
using namespace std;
int main()
{
//这两个常数的定义可以放在main外面的
#define N 10
const int S=80;


string str;
char ch1,ch2,ch3,ch4,ch5;
char buff1[S];
char buff2[N][S];


cout<<"Please input a string \n"<<endl;


cin>>buff1[S];
cout<<"By cin\n";
cout<<buff1[S]<<endl<<endl;


ch1=cin.get();
cout<<"By cin.get()\n";
cout<<ch1<<endl<<endl;


cin.get(ch2);
cout<<"By cin.get(ch2)\n";
cout<<ch2<<endl<<endl;


cin.get(buff1,6);
//cin.get()第二个用法,也是输入一行(同cin.getline()),也可以加上第三个参数,和getline一样,但是区别就是,不输出分隔符~
cout<<"By cin.get(buff1,6)\n";
cout<<buff1<<endl<<endl;//要注意这个输出是输出Buff1;


cin.getline(buff1,5,'s');//要注意与getline的区别
//cin.getline()有三个参数:接受字符串m,接受个数5,结束字符
cout<<"By cin.getline(buff1,5,'s')"<<endl;
cout<<buff1<<endl<<endl;


getline(cin,str);
//getline()是定义在<string>中的一个函数,这里的参数表的意思是:cin是必须要有的,str就是得到字符后存放的字符串名称,等一下输出就是输出这个str
cout<<"By getline(cin,str)"<<endl;
cout<<str<<endl<<endl;

system("pause");
return 0;
}

 

C++的字符输入的更多相关文章

  1. 《C程序设计语言》- 字符输入和输出

    书籍介绍: 本书是机械工业出版社的第2版·新版,作者两位,其中一位是C语言之父Dennis Ritchie,另一位是Brian Kernighan,也是一位牛人. 本书的目的是帮助读者学习如何用C语言 ...

  2. 【C语言学习】《C Primer Plus》第8章 字符输入/输出和输入确认

    学习总结 1.缓冲区分为完全缓冲区(fully buffered)I/O和行缓冲区(line-buffered)I/O.对完全缓冲输入来说,当缓冲区满的时候会被清空(缓冲区内容发送至其目的地).这类型 ...

  3. 《c程序设计语言》读书笔记--闰年和字符输入不用 && ||

    #include <stdio.h> #include <string.h> #define sta 1500 #define Num 1600 int main() { in ...

  4. Java IO详解(四)------字符输入输出流

    File 类的介绍:http://www.cnblogs.com/ysocean/p/6851878.html Java IO 流的分类介绍:http://www.cnblogs.com/ysocea ...

  5. mysql进阶(二十二)MySQL错误之Incorrect string value: '\xE7\x81\xAB\xE7\x8B\x90...中文字符输入错误

    MySQL错误之Incorrect string value: '\xE7\x81\xAB\xE7\x8B\x90...' for column 'tout' at row 1中文字符输入错误 在实验 ...

  6. h5 调起ios数字键盘的坑,限制特殊字符输入方案

    最近有个需求是利率只允许输入数字和小数点,用以下 <input type="number" pattern="[0-9]*"> 在ios会调起数字键 ...

  7. Bufferread有readline()使得字符输入更加方便

    原则:保证编解码方式的统一,才能不至于出现错误. Io包的InputStreamread称为从字节流到字符流的桥转换类.这个类可以设定字符转换方式. OutputStreamred:字符到字节 Buf ...

  8. 第5讲——cin处理字符输入

    本来这一讲应该是while.for.if之类的,但是,我们可是学过C的男人,再浪费时间搞这个??? 还不如学点C++中的新知识. cin对象支持3种不同模式的单字符输入,其用户接口各不相同. 下面我们 ...

  9. C Primer Plus学习笔记(七)- 字符输入/输出和输入验证

    单字符 I/O:getchar() 和 putchar() getchar() 和 putchar() 每次只处理一个字符 getchar() 和 putchar() 都不是真正的函数,它们被定义为供 ...

  10. Java中的字节输入出流和字符输入输出流

    Java中的字节输入出流和字符输入输出流 以下哪个流类属于面向字符的输入流( ) A BufferedWriter B FileInputStream C ObjectInputStream D In ...

随机推荐

  1. 调试wmi连接主机进行监控

    wmi连接及配置 1.首先介绍两款连接wmi的工具: ①windows自带的wbemtest. ②WMI 资源浏览器 两者都是可以连接wmi,并且执行相关命令的工具. 2.尝试连接首先利用win自带的 ...

  2. vuejs生命周期函数

    生命周期函数就是vue实例在某一个时间点会自动执行的函数 当我们创建一个实例的时候,也就是我们调用 new Vue() 这句话的时候,vue会帮助我们去创建一个实例,创建过程其实并不像我们想的那么简单 ...

  3. 的NodeJS异步数据库函数需要同步的答案 +

    我是新来的NodeJS和我写,需要从我去过的所有的函数应该是在这种情况下,读QUERY我的MySQL数据库,并返回代码,我非常希望服务器能够对其他事件作出回应而这个地方是轨迹查询请求.然而,它并不特别 ...

  4. 史上最简单的SpringCloud教程 | 第三篇: 服务消费者(Feign)

    转载请标明出处: https://www.fangzhipeng.com/springcloud/2017/07/12/sc03-feign/ 本文出自方志朋的博客 最新Finchley版本请访问: ...

  5. gdb几个操作

    如果进程转为守护进程,可设置如下跟进子进程 set follow-fork-mode child 输出变量/函数/返回值有print, call, display,自行选择 对于打印value has ...

  6. thymeleaf单选回显,多选回显,选回显,下拉默认选中第一个

    //默认选中第一个<input type ="radio" name="repaymentType" th:each ="repaymentTy ...

  7. Spring MVC 接收前端参数的方式

    方式一: 普通方式接收 1 @RequestMapping("/index") 2 public String getUserName(String username) { 3 S ...

  8. js对象动态添加属性,方法

    1. 动态添加属性,方法 var object = new Object(); object.name = "name"; object.age = 19; >>> ...

  9. Linux实战教学笔记16:磁盘原理

    第十五节 磁盘原理 标签(空格分隔): Linux实战教学笔记 1,知识扩展 非脚本方式的一条命令搞定批量创建用户并设置随机10位字母数字组合密码. 1.1 sed的高级用法 [root@chensi ...

  10. 数据写入Excel

    通过xlwt这个库,可以将数据写入Excel中,而且通过xlwt写excel格式可以控制 颜色.模式.编码.背景色 下面基本上是一个练习,熟悉如何操作xlwt库的 下面是代码,所有的内容,和介绍,基本 ...