【C++】字符串输入

1.cin

第①次尝试

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string cww1;
    cin>>cww1;
    cout<<cww1;
    return 0;
}

运行结果:

读到空格会终止读取,所以只显示了Makishima.

根据Bloguy的博文中所讲:

输入原理:

程序的输入都建有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入。

第②次实验

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string cww1;
    string cww2;
    cin>>cww1;
    cin>>cww2;
    cout<<"cww1="<<cww1<<endl;
    cout<<"cww2="<<cww2<<endl;
    return 0;
}

运行结果:

第一次多输入的数据还残留在缓存区中,第二次输入就直接从缓存区中提取而不会请求键盘输入.

2.getline()函数

getline()函数用于读取整行字符串,通过回车确定输入结尾,调用方法为cin.geiline()

第①次尝试

#include <iostream>
using namespace std;
int main()
{
    char cww1[20];
    cin.getline(cww1,20,);
    cout<<cww1<<endl;
    return 0;
}

运行结果:

输入的字符串包括空格都会被读取.

getline()函数完整的使用格式:getline(数组名,数组长度,结束符)

第②次尝试

#include <iostream>
using namespace std;
int main()
{
    char cww1[20];
    cin.getline(cww1,20,‘ ‘);
    cout<<cww1<<endl;
    return 0;
}

运行结果:

读到‘ ‘会终止.

第③次尝试:

#include <iostream>
using namespace std;
int main()
{
    char cww1[20];
    cin.getline(cww1,10);
    cout<<cww1<<endl;
    return 0;
}

运行结果:

长度为n,输出字符最大个数为n-1个.

3.get()

面向行输入get(),与getline()相似但不同之处在于不会丢弃回车结束符,格式:cin.get(数组名,数组长度,结束符).

→相关博文:http://www.cnblogs.com/A-Song/archive/2012/01/29/2331204.html

时间: 2024-08-04 23:38:01

【C++】字符串输入的相关文章

C语言 realloc为什么要有返回值,realloc返回值详解/(解决任意长度字符串输入问题)。

在C语言操作中会用到大量的内存操作,其中很常用的一个是realloc(). 由字面意思可以知道,该函数的作用是用于重新分配内存. 使用方式如下: NewPtr=(数据类型*)realloc(OldPtr,MemSize) 其中OldPtr指向 待重新分配内存的指针. NewPtr指向 新分配空间的指针. MemSize为 分配后的空间大小. 该函数的使用涉及以下几个问题: 1.不同情况下的返回值 2.OldPtr指向的内存会不会自动释放 3.OldPtr和NewPtr分别是什么内容,他们有什么关

cin 字符串输入

cin 字符串输入 在学习c的时候,关于字符串的输入,记得有 scanf("%s",s); gets(s); 还有...o.o 好想没了... scanf("%s",s) 读取一行,但空格相当与一个'\n' 不读取. while(scanf("%s",s)){} : 支持 Ctrl+z 结束输入 即 此次运行表达式==0. gets(s) 读取一行,包括空格. cin>>s while(cin>>s): 也支持 Ctrl+

C++每次读取一行字符串输入(学习笔记) (转)

1. 面向行的输入:getline()getline()函数读取整行,它使用通过回车键输入的换行符来确定输入结尾. cin.getline(Arr, 20) // Arr为用来输入行的数组的名称:                      //20包括19个字符和1个空字符 2. 面向行的输入:get()与getline()的工作方式类似,接受参数相同,但get()并不再读取并丢弃换行符,而是将其留在输入队列中.可如下使用: cin.get(Arr1, ArSize); // 读第一行cin.g

字符串输入专题

一.前言:如果想读入一个字符串,必须首先预留存储字符串的空间,然后才使用输入函数来获取合格字符串. 二.创建存储空间 要做的第一件事是建立一个空间用来存放字符串.不要指望计算机读取字符串时会自动计算字符串长度,并且为字符串分配空间.所以,字符串的空间必须人为分配:最简单的办法就是在声明中指出数组的大小. 例1: char *name; scanf("%s",name);//错误 例2:   char name[80]; scanf("%s",name);//正确 例

C字符串输入输出函数

下面就几个常用的字符串输入输出函数做个小小的总结TAT 使用时添加头文件:#include<stdio.h>. scanf("格式控制字符串",变量地址列表):(printf),每次只能接收一个单词,无法接收整行数据 gets(字符数组名或指针):读取一整行的输入,以回车结束读取,如果用来保存接收到数据的空间不够大就会导致缓冲区溢出,覆盖缓冲区之后的数据,在C11中被废弃.gets()在接收数据时,输入换行符时会丢弃,不会被读取,没有换行的效果,读取的换行符被转换为'\0'

用指针对字符串输入/输出

#include<iostream> using namespace std; int main(void) { char *s=new char[80]; cout<<"输入一个字符串: "; cin>>s; getchar(); cout<<"输入的字符串是:"; cout<<s; getchar(); delete []s; s=NULL; } s是一个字符型指针变量,通过new运算符申请一个动态数组

把字符串输入到表格里

在格子中输出字符串 在格子中显示 用户输入一个字符串,把它显示在格子中. 要求: 水平左对齐,垂直顶端对齐. 格子的宽度和高度是先定好的,比如:30 x 7 如果字符串太长,则需要折行显示. 如果实在太长,到最后一行都装不下,则截断它,使之不破坏格子边框. 可能的情景: 情景1 情景2 我们可以定义一个大的字符型数组 char[][] cc,该数组的范围就是表格的大小. 先把数组的四个角赋值为 '+',第一行最后一行的其他位置赋值为 '-',第一列和最后一列赋值为 '|'.这样,表格的框架就打好

标C编程笔记day07 常用标准库介绍、字符串输入处理、字符指针的使用

常用标准库: assert.h:断言,包含assert宏.可以进行自我检查 ctype.h:字符处理,字符的分类,大小转换 errno.h:错误信息处理 float.h:浮点数特性 limits.h:整数的大小,提供了描述整数类型的宏 lcale.h:本地化 math.h:数学函数 setjmp.h:跳转 signal.h:信号处理 stdarg.h:可变长参数处理 stddef.h:经常使用的类型的定义 stdio.h:输入输出 string.h:字符串处理 stdlib.h:其他函数,字符串

C语言 realloc为什么要有返回值,realloc返回值具体解释/(解决随意长度字符串输入问题)。

在C语言操作中会用到大量的内存操作,当中非经常常使用的一个是realloc(). 由字面意思能够知道,该函数的作用是用于又一次分配内存. 使用方式例如以下: NewPtr=(数据类型*)realloc(OldPtr,MemSize) 当中OldPtr指向 待又一次分配内存的指针. NewPtr指向 新分配空间的指针. MemSize为 分配后的空间大小. 该函数的使用涉及下面几个问题: 1.不同情况下的返回值 2.OldPtr指向的内存会不会自己主动释放 3.OldPtr和NewPtr各自是什么

字符串与字符串函数 - 字符串 &amp; 字符串输入

一.表示字符串与字符串I/O [字符串 - 以空字符(\0)结尾的 char 类型数组] 1.字符串字面量(字符串常量) 用双引号括起来的内容称为字符串常量(string literal),也叫做字符串常量(string constant).双引号中的字符和编译器自动加入末尾的 \0 字符,都作为字符串存在内存中. ANSI C 标准规定,如果字符串常量之间没有间隔,或者用空白字符分隔,C 会将其视为串联起来的字符串常量. char chr1[50] = "Hello, and"&qu