C++cin.width(5)是什么意思?
2个回答
展开全部
cin.width(5); //每次只接收4个字符,其他的放在流中等待接收。
详细介绍如下:
设置域宽
如果所需的宽度比设置的域宽小,空位用填充字符填充。如果显示数据所需的宽度比设置的域宽大,系统输出所有位。域宽设置仅对下一行流读入或流插入抄做有效,在一次操作完后被置0。
Setw
Width:输入操作提取字符串的最大宽度比定义的域宽小1,这是因为在输入的字符串后面必须加上一个空字符。
#include <iostream.h>
#include <ctype.h>
#include <iomanip.h>
int main()
{
int w=4;
char str[10];
cout<<"Enter a sentence:\n";
cin.width(5); //每次只接收4个字符,其他的放在流中等待接收。
while( cin>> str )
{
cout.width(w++); //将4个字符输出,设置每次输出的域宽增加1
cout<<str<<endl; //输出字符
cin.width(5); //设置接收4个字符
}
return 0;
}
输入输出情况:
Enter a sentence:
happy new year
happ
y
new
year
^Z
先输出happ(四个字符),y留在下一次。遇到空格接收结束,第二次只有y,到y输出时,输出域宽是5。下一个接收的是new(后面的空格断开了接收),……
详细介绍如下:
设置域宽
如果所需的宽度比设置的域宽小,空位用填充字符填充。如果显示数据所需的宽度比设置的域宽大,系统输出所有位。域宽设置仅对下一行流读入或流插入抄做有效,在一次操作完后被置0。
Setw
Width:输入操作提取字符串的最大宽度比定义的域宽小1,这是因为在输入的字符串后面必须加上一个空字符。
#include <iostream.h>
#include <ctype.h>
#include <iomanip.h>
int main()
{
int w=4;
char str[10];
cout<<"Enter a sentence:\n";
cin.width(5); //每次只接收4个字符,其他的放在流中等待接收。
while( cin>> str )
{
cout.width(w++); //将4个字符输出,设置每次输出的域宽增加1
cout<<str<<endl; //输出字符
cin.width(5); //设置接收4个字符
}
return 0;
}
输入输出情况:
Enter a sentence:
happy new year
happ
y
new
year
^Z
先输出happ(四个字符),y留在下一次。遇到空格接收结束,第二次只有y,到y输出时,输出域宽是5。下一个接收的是new(后面的空格断开了接收),……
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询