编写一个简单的C++程序!只要适用于VC6就行!
5.编写程序实现功能:读入一个字符,输出该字符,且要求输出时控制域宽为3,域宽中的空位用字符#填充。例如输入:A输出:##A...
5. 编写程序实现功能:读入一个字符,输出该字符,且要求输出时控制域宽为3,域宽中的空位用字符#填充。
例如
输入:A
输出:##A 展开
例如
输入:A
输出:##A 展开
4个回答
展开全部
经vc测试,一楼代码正确!我简单加点注释
#include <iostream>
#include <iomanip>
//setw setfill 在<iomanip>定义
using namespace std;
int main()
{
char ch;
cin>>ch;
cout<<setw(3)<<setfill('#')<<ch<<endl;
//setw(3) 设置输出控制域宽为3
//setfill('#') 设置填充字符
return 0;
}
附:
setfill是设置填充填充字符,setw设置输出的宽度,它们的只作用表现在紧接着输入的字符串上。这个宽度是填充后的宽度。所以
cout<<setfill(' ')<<setw(n)<<" " << setfill("M")<<setw(21-2*n)<<"M"中
setfill和setw只作用在" ",表示在" "前面填充n-1个空白。
而setfill("M")<<setw(21-2*n)<<"M"这一段是在"M"前面填充21-2*n-1个空白。
和
cout<<setfill(' ')<<setw(n)<<setfill("M")<<setw(21-2*n)<<"M"
是不一样的。
后者的因为setfill("M")不是一个字符,这种情况没有明确的说明该如何处理。从我用的VC输出的情况分析,处理方法是前面的setfill和setw失去了作用。
至于cout.width和count.fill一般是这样用的:
cout.width(n);
cout.fill('M');
cout << ...
如果是cout << cout.width(n)就是输出 cout.width(n)的返回值。表示设置的流的宽度,所以似乎一个数。至于为什么会输出这样的数值。分析起来比较麻烦,涉及到运算顺序一类的问题,而且也可能和编译器的实现方法有关,没有什么实际意义,还是老老实实分开写比较好
#include <iostream>
#include <iomanip>
//setw setfill 在<iomanip>定义
using namespace std;
int main()
{
char ch;
cin>>ch;
cout<<setw(3)<<setfill('#')<<ch<<endl;
//setw(3) 设置输出控制域宽为3
//setfill('#') 设置填充字符
return 0;
}
附:
setfill是设置填充填充字符,setw设置输出的宽度,它们的只作用表现在紧接着输入的字符串上。这个宽度是填充后的宽度。所以
cout<<setfill(' ')<<setw(n)<<" " << setfill("M")<<setw(21-2*n)<<"M"中
setfill和setw只作用在" ",表示在" "前面填充n-1个空白。
而setfill("M")<<setw(21-2*n)<<"M"这一段是在"M"前面填充21-2*n-1个空白。
和
cout<<setfill(' ')<<setw(n)<<setfill("M")<<setw(21-2*n)<<"M"
是不一样的。
后者的因为setfill("M")不是一个字符,这种情况没有明确的说明该如何处理。从我用的VC输出的情况分析,处理方法是前面的setfill和setw失去了作用。
至于cout.width和count.fill一般是这样用的:
cout.width(n);
cout.fill('M');
cout << ...
如果是cout << cout.width(n)就是输出 cout.width(n)的返回值。表示设置的流的宽度,所以似乎一个数。至于为什么会输出这样的数值。分析起来比较麻烦,涉及到运算顺序一类的问题,而且也可能和编译器的实现方法有关,没有什么实际意义,还是老老实实分开写比较好
参考资料: http://zhidao.baidu.com/question/80679656.html?si=1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我想这是你要的答案,你所说的是读入一次,输出一次,操作的次数肯定不是一次,哥们对吗?分给我吧!我想下点东西。。。。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
char ch;
while(1)
{
cin>>ch;
if(ch=='!')//输入!结束
break;
cout<<setw(3)<<setfill('#')<<ch<<endl;
}
return 0;
}
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
char ch;
while(1)
{
cin>>ch;
if(ch=='!')//输入!结束
break;
cout<<setw(3)<<setfill('#')<<ch<<endl;
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
char ch;
cin>>ch;
cout<<setw(3)<<setfill('#')<<ch<<endl;
return 0;
}
#include <iomanip>
using namespace std;
int main()
{
char ch;
cin>>ch;
cout<<setw(3)<<setfill('#')<<ch<<endl;
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <iostream>
using namespace std;
#define cout cout<<"##"
int main(void)
{
char ch;
cin>>ch;
cout<<ch;
return 0;
}
using namespace std;
#define cout cout<<"##"
int main(void)
{
char ch;
cin>>ch;
cout<<ch;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询