c++中的setiosflags(ios::skipws)怎么用?

我敲的char*pt="China";cout<<setiosflags(ios::skipws)<<pt<<endl;没有达到忽略空格效果。我用的是VC6.0难道是编译... 我敲的char* pt = " Ch ina"; cout<<setiosflags(ios::skipws)<<pt<<endl;没有达到忽略空格效果。我用的是VC6.0难道是编译器的问题?(前面已加include<iomanip>) 展开
 我来答
风若远去何人留
推荐于2018-05-15 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450106
专业C/C++软件开发

向TA提问 私信TA
展开全部
关于skipws,C++规范中描述如下:
Skip whitespaces
Sets the skipws format flag for the str stream.

When the skipws format flag is set, as many whitespace characters as necessary are read and discarded from the stream until a non-whitespace character is found before. This applies to every formatted input operation performed with operator>> on the stream.

Tab spaces, carriage returns and blank spaces are all considered whitespaces (see isspace).

This flag can be unset with the noskipws manipulator, forcing extraction operations to consider leading whitepaces as part of the content to be extracted.

For standard streams, the skipws flag is set on initialization.

其功能为忽略空白字符。用于输入流中,如cin。在标准输入流中,skipws已经是默认开启状态。
skipws会忽略空白字符,包括空格,制表符(\t),换行符(\n)等不可见字符。
如果系统当前skipws开关已经关闭,那么可以在输入流中,插入skipws来打开。
stream<<setiosflags(ios::skipws);
百度网友c2a621b0f
推荐于2016-11-15 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:92.3万
展开全部
skipws是作用于流式输入的,而非输出。
cin默认是已经把skipws开启了。

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
char s1,s2,s3;
cin>>resetiosflags(ios::skipws);
cin>>s1>>s2>>s3;
cout<<s1<<s2<<s3<<endl;

return 0;
}

注意把cin>>resetiosflags那句注释和不注释,看输入的差别,你就明白了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式