zoukankan      html  css  js  c++  java
  • 从标准输出和读入

    &1 函数cin

    cin通过使用空白(空格、制表符和换行符)来定字符串的界。这意味着cin在读取
    字符数组输入时只读取一个单词,读取该单词后,cin将该字符串放一数组中,并自动
    结尾添加空字符。另外,cin也没有很好的控件输入的字符数,即输入字符数大于数组
    大小的情况没有处理。

    &2 源代码-cin

    const int size = 20;
    char name[size];
    char pl[size];//program language 
    cout << "Enter your name:";
    cin >> name;
    cout << "Enter your favorite program language:";
    cin >> pl;
    cout << "Hello " << name << ", your favorite program language is " << pl << endl;

    &3 cin.getline函数

    cin.getline()函数读取整行,它使用通过回车键输入的换行符来确定输入结尾。该函数有
    两个参数。第一个参数是用来存储输入行的数组的名称,第二个参数是要读取的字符数(包括
    空字符),cin.getline()成员函数在读取指定数目的字符或遇到换行符时停止读取,需要注意
    的是,cin.getline()丢弃了换行符。

    &4 源代码-cin.getline

    cout << "Enter your name:";
    cin.getline(name, size);
    cout << "Enter your favorite program language:";
    cin.getline(pl, size);
    cout << "Hello " << name << ", your favorite program language is " << pl << endl;

    &5 get函数

    get()函数有好几种变体,其中有一种与getline()完全相同的参数,但该函数不再读取并丢
    弃换行符(不读取意味着换行符还在输入队列中)

    &6 源代码-get()

    cout << "Enter your name:";
    cin.get(name, size);
    cout << "Enter your favorite program language:";
    cin.get(pl, size);
    cout << "Hello " << name << ", your favorite program language is " << pl << endl;

    &7 get()函数的困扰

    发现&6中代码并不好使,原因是由于第一次调用后,换行符将留存输入队列中,因此第二次调用时看
    到的第一个字符为换行符。因此get认为已经到达行尾,而没有发现任何可读取的内容。get()
    (不带任何参数的变体)可以读取下一个字符(包括换行符)。

    &8 改进源代码

    cout << "Enter your name:";
    cin.get(name, size).get();
    cout << "Enter your favorite program language:";
    cin.get(pl, size).get();
    cout << "Hello " << name << ", your favorite program language is " << pl << endl;

    &9 混合输入字符串和数字

    int age = 0;
    char address[size] = { 0 };
    cout << "Enter your age:";
    cin >> age;
    cin.get();
    cout << "Enter your address:";
    cin.getline(address, size);
    cout << "your age is " << age << ", your address is " << address << endl;

  • 相关阅读:
    Linux查看系统版本信息和设置远程终端登录
    Linux环境下安装JDK
    Windows10修改Tomcat服务端口和一台机器部署多个Tomcat
    [转]C#反射-Assembly.Load、LoadFrom与LoadFile进阶
    【转】C# lock的使用
    一个简单的C++程序及说明
    插入排序
    堆排序
    选择排序
    快速排序
  • 原文地址:https://www.cnblogs.com/sophia-hxw/p/5670879.html
Copyright © 2011-2022 走看看