从标准输出和读入

    xiaoxiao2021-04-15  41

    &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;

    转载请注明原文地址: https://ju.6miu.com/read-671649.html

    最新回复(0)