#include <iostream> using namespace std; int main() { int x; //输入时跳过前面的空白符(skipws),这也是默认的设置 cin.flags(cin.flags()|ios::skipws); //上个语句改为:cin.flags(cin.flags()&~ios::skipws);看看输入: 23434会怎么样? cin>>x; cout<<x<<endl; ios::fmtflags defaultFlags=cout.flags(); //保存原有的设置 cout.flags(defaultFlags|ios::showpos); //显示符号 cout<<x<<endl; //十六进制形式输出(hex),要求输出基数0x(showbase),要求输出大写(uppercase) cout.flags(defaultFlags&~ios::dec&~ios::oct|ios::hex|ios::uppercase|ios::showbase); cout<<x<<endl; char oldFillChar=cout.fill('*'); //填充字符设置为* cout.width(10); //输出宽度为10 cout.flags(cout.flags()|ios::right); //输出右对齐 cout<<x<<endl; cout.fill(oldFillChar); cout.width(10); cout<<x<<endl; cout.flags(defaultFlags); //恢复原有的设置 cout<<x<<endl; return 0; } 改写
时间: 2024-02-06 16:02:18 浏览: 79
以下是改写后的代码:
```c++
#include <iostream>
using namespace std;
int main() {
int x;
// 输入时跳过前面的空白符(skipws),这也是默认的设置
cin >> std::skipws >> x;
cout << x << endl;
ios::fmtflags defaultFlags = cout.flags(); // 保存原有的设置
cout.flags(defaultFlags | ios::showpos); // 显示符号
cout << x << endl;
// 十六进制形式输出(hex),要求输出基数0x(showbase),要求输出大写(uppercase)
cout.flags(defaultFlags & ~ios::dec & ~ios::oct | ios::hex | ios::uppercase | ios::showbase);
cout << x << endl;
char oldFillChar = cout.fill('*'); // 填充字符设置为*
cout.width(10); // 输出宽度为10
cout.flags(cout.flags() | ios::right); // 输出右对齐
cout << x << endl;
cout.fill(oldFillChar);
cout.width(10);
cout << x << endl;
// 恢复原有的设置
cout.flags(defaultFlags);
cout << x << endl;
return 0;
}
```
改写之后的代码与原代码的功能相同,只是更改了一些语法细节,使得代码更加规范和易读。
阅读全文