马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 一叶枫残 于 2021-2-8 18:01 编辑
本笔记内容:cin.ignore,cin.peek,cin.read,cin.gcount,cout.precision,cout.width
上代码
ignore代码1号#include <iostream>
using namespace std;
int main()
{
char a[10];
cout << "请输入字符串:";
cin.ignore(5);
cin.getline(a,10);
cout << "a:" << a << endl;
return 0;
}
本代码作用为,忽略输入的前5个字符(cin.ignore),把后面字符储存到a(cin.getline)当中,例请输入字符串:0123456789
a:56789
ignore代码2号#include <iostream>
using namespace std;
int main()
{
char a[10];
cin.ignore( 5 , 'a');
cin.getline(a,10);
cout << a << endl;
return 0;
}
请输入字符串:012a3456789
a:3456789
请输入字符串:0123456a789
a:56a789
这个代码的作用是,忽略前5个字符或者遇到字符a(ignore)时,把后面的字符赋10个字符值给a(cin.getline)
那么,如果想当遇到字符a再赋后面的值而不是选择忽略前面多少个字符该怎么办呢,经过检验,写成ignore( 0 , 'a')或者ignore( 'a' )不行,我们可以把前面参数的值设大点就ok,例如ignore( 100000 , 'a' );
cin.peek
上代码#include <iostream>
using namespace std;
int main()
{
int a;
cout << "请输入a的值:" << endl;
a = cin.peek();
cout << "a:" << a << endl;
return 0;
}
cin.peek只接受单个字符的输入,当输入多个字符,它只允许第一个字符的进入,注意是字符,当其给整型变量a赋值的时候,a被赋值的是字符对应的ascii码,如果a是字符类型,那么cout输出的a对应的就是输入的第一个字符;
cin.read
上代码#include <iostream>
using namespace std;
int main()
{
char a[50];
cout << "请输入a的值:" << endl;
cin.read( a , 20 );
cout << "a:" << a << endl;
return 0;
}
请输入a的值:
0123456789
0123456789
a:0123456789
012345678
cin.read的作用是读取指定长度的字符串,它与cin.getline的作用相似,但是cin.read不局限于行,当没读取足够长度的字符串时,还需要输入
cin.count#include <iostream>
using namespace std;
int main()
{
char a[20];
cout << "请输入a的值:" << endl;
cin.read( a , 20 );
cout << "a:" << a << endl;
cout << "收集的字符串长度为:" << cin.gcount() << endl;
return 0;
}
请输入a的值:
01234567890123456789
a:01234567890123456789
收集的字符串长度为:20
cin.gcount可计算取得的字符串长度,但是,看如下两个代码#include <iostream>
using namespace std;
int main()
{
char a[50];
cout << "请输入a的值:" << endl;
cin.read( a , 20 );
cout << "a:" << a << endl;
cout << "收集的字符串长度为:" << cin.gcount() << endl;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
char a[50];
cout << "请输入a的值:" << endl;
cin.getline( a , 20 );
cout << "a:" << a << endl;
cout << "收集的字符串长度为:" << cin.gcount() << endl;
return 0;
}
对于第一个程序:请输入a的值:
01234567890123456789
a:01234567890123456789 曠@
收集的字符串长度为:20
第二个程序:请输入a的值:
01234567890123456789
a:0123456789012345678
收集的字符串长度为:19
两个结果各有不同,具体原因暂不知,注意使用;
cout.precision#include <iostream>
using namespace std;
int main()
{
float a;
a = 3.141596254;
cout << "a:" << a << endl << endl;
int i;
for( i = 0; i <= 9; i++)
{
cout.precision(i);
cout << a << endl;
}
return 0;
}
a:3.1416
3
3
3.1
3.14
3.142
3.1416
3.1416
3.141596
3.1415963
3.14159632
cout.precision的作用是用于控制输出浮点数的精度;
cout.width#include <iostream>
using namespace std;
int main()
{
float a;
a = 3.14;
cout << "a:" << a << endl << endl;
int i;
for( i=0; i<=8; i++)
{
cout.width(i);
cout << a << endl;
}
return 0;
}
a:3.14
3.14
3.14
3.14
3.14
3.14
3.14
3.14
3.14
3.14
cout.width的作用是用于控制输出的宽度,但前提是把内容给输出完才开始控制宽度
|