zoukankan      html  css  js  c++  java
  • c++字符串的输入

    先声明一下字符串的初始化:当初始赋值的时候一定是反斜杠0()有三种方式“”,{‘’}.""(如果是已经赋值的我们可以采用memset(recvbuf, '', sizeof(recvbuf));这种方式来清空)

    下面来介绍c++的几个关于按键输入捕获:

    一.cin

      使用cin输入时,程序将输入视为一系列字节。每个字节都被解释为字符编码。不管数据类型是什么,输入一开始都是字符数据,然后cin对象负责将数据转换成其他类型。当你输入Michael Jackon时,通运行程序你会发现name只存储了Michael,这是为什么呢?

     原来是 cin使用空白(空格,制表符和换行符)来确定字符串的结束位置在读取字符数组时,cin将只会读取第一个单词,cin将该字符串放到数组中,并自动添加空字符Michael Jackon 之间的空格被当作结束符了,而Jackon被继续留在输入队列中,直到下一次读取输入。

    二.getline()和cin.getline()

      两者的功能基本相同都可以接受空格,且会把换行符进行丢弃,但是cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数。getline定义在string中,getline利用cin可以从标准输入设备键盘读取一行,当遇到如下三种情况会结束读操作:1)到文件结束,2)遇到函数的定界符,3)输入达到最大限度。 

    函数原型有两个重载形式: 
    istream& getline ( istream& is, string& str); / /默认以换行符结束 
    istream& getline ( istream& is, string& str, char delim); 

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

      函数作用:从标准输入设备键盘读取一串字符串,并以指定的结束符结束。 
    函数原型有两个: 
    istream& getline(char* s, streamsize count); // 默认以换行符结束 
    istream& getline(char* s, streamsize count, char delim); 

    #include<iostream> 
    #include<string> 
    using namespace std;
    
    main () 
    { 
    char m[3][20]; 
    for(int i=0;i<3;i++) 
    { 
    cout<<"
    请输入第"<<i+1<<"个字符串:"<<endl; 
    cin.getline(m[i],20); 
    }
    

    三.cin.get

    即cin.get(), cin.get(char ch), cin.get(array_name, Arsize) 
    对应的函数原型如下: 
    int cin.get(); 
    istream& cin.get(char& var); 
    istream& get ( char* s, streamsize n ); // 读取字符串时,默认以换行符结束。 
    istream& get ( char* s, streamsize n, char delim ); // 读取字符串时,第三个参数可指定结束符读取字符的情况: 

    输入结束条件:Enter键 对结束符处理:不丢弃缓冲区中的Enter cin.get() 与 cin.get(char ch)用于读取字符,他们的使用是相似的, 即:ch=cin.get() 与 cin.get(ch)是等价的.
    cin.get(array,20);读取一行时,遇到换行符时结束读取,但是不对换行符进行处理,换行符仍然残留在输入缓冲区,所以我们需要再调用一下cin.get();来处理掉换行符。

  • 相关阅读:
    list转map,set,使用stream进行转化
    使用thymeleaf模板实现博客评论的异步刷新
    python 字典元组集合字符串
    python列表解析补充:
    python列表解析
    springboot框架中集成thymeleaf引擎,使用form表单提交数据,debug结果后台获取不到数据
    配置github——每次提交后使contributions有记录(有小绿格子)
    github浏览器无法访问,并且idea无法push项目
    互联网协议入门
    http协议入门---转载
  • 原文地址:https://www.cnblogs.com/yskn/p/9353875.html
Copyright © 2011-2022 走看看