C++string的输出格式控制
输出一个字符串:左对齐,字宽为10,空格填充
1. string s;
2. cin>>s;
3. cout<<std::left<<setw(10)<<setfill('*')<<s<<endl;
输入:love
输出效果:love******
C++string字符流字符分割技巧
输入一行字符串,然后按某个字符分割成若干子串
1. string s;
2. getline(cin,s);//输入一行字符串
3. stringstream line(s);//创建字符流对象
4. while(getline(line,s,','))//按逗号分隔字符串
5. cout<<s<<endl;
输入:you are,my friend
输出效果:
you are
my friend
其实还有一种写法,注意getline是以回车作为个串的结束符,就像c语言里gets(s);
当对象cin输入文件结束时(end-of-file)返回值为0 !!
这里是把结束符修改为逗号,回车符失去原来的作用
1. string s;
2. while(getline(cin,s,','))//按逗号分隔字符串
3. cout<<s<<endl;
效果同上一种方法
C语言输入输出技巧:
输入示例:
输入三个变量a,b,c。要求跨过b(此技巧实用性不大)
scanf("%d%*d%d",&a,&c);
执行这句话的效果是,从键盘输入三个数字,第二个数字会被忽略,剩余两个数字分别赋给a,c
输出:
左对齐输出一个字符串,要求宽度为m。
int m=10;
char s[100]="skajd";
printf("%-*s",m,s);
效果:星号吸收m的值作为%s的宽度,符号代表左对齐。