我是靠谱客的博主 热心冰棍,最近开发中收集的这篇文章主要介绍从标准输出和读入,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

最后

以上就是热心冰棍为你收集整理的从标准输出和读入的全部内容,希望文章能够帮你解决从标准输出和读入所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部