1. cin.width(n);
会把字符串全部读取,分成几块,每块n-1个字符,只输出第一块,如果字符串长度不满 n-1,剩下的用空格补齐;
从第n个字符开始到字符串不输出,输出时n-1个字符前边没有空格;同样也是只输出第一块
#include <iostream>
using namespace std;
int main(){
int width = 4;
char str[20];
cout << "请输入一段文本: \n";
cin.width(5); //cin>>str;实际只能提取4个字符,str最后一个是空字符,其他的放在流中等待接受。
while( cin >> str ) {
// cout.width(width++); //将4个字符输出,设置每次输出的域宽增加1
//cin >> str;
cout << str << endl; //输出str
cin.width(5); //设置接受4个字符
}
return 0;}
结果:
2. cout.width(n);
输出n个字符,字符自动右对齐,左边用空格补上,视字符串中的空格为读取断开,即遇到空格时认为读取完了一块,在读取下一块,如果字符串长度大于n,则全部读取到下一个空格读完一块;
#include <iostream>
using namespace std;
int main(){
int width = 4;
char str[20];
cout << "请输入一段文本: \n";
//cin.width(5); //cin>>str;实际只能提取4个字符,str最后一个是空字符,其他的放在流中等待接受。
while( cin >> str ) {
cout.width(width); //将4个字符输出,设置每次输出的域宽增加1
//cin >> str;
cout << str << endl; //输出str
//cin.width(5); //设置接受4个字符
}
return 0;}
结果: