C++算法题的⼀些输出技巧输出时左对齐与右对齐,补全
C语⾔
在C语⾔中我们可以这样来实现左右对齐
printf("%-3d\n",3);
printf("%3d\n",3);
这样得到的结果就是
3
3
如果像补零的话,就这样写
printf("%-03d\n",3);
printf("%03d\n",3);printf输出格式右对齐
3
003
如果保留多少个空格是⼀个变量的话,则变量部分使⽤*来代替
int n = 4;
printf("%-0*d\n",n,3);
printf("%0*d\n",n,3);
3
0003
C++
在C++中是要引⼊iomanip这个头⽂件,然后
使⽤setw来控制间距
使⽤setiosflags来控制左右对齐
使⽤setfill来控制补什么字符
#include <iomanip>
#include <iostream>
using namespace std;
int main(){
int n = 4;
cout << setiosflags(ios::left) << setw(n) << setfill('0') << 3 << endl;
cout << setiosflags(ios::right) << setw(n) << setfill('0') << 3 << endl;
return 0;
}
3000
0003
注意:这⾥C++把所有空格全换乘0了。
输出时改变进制
在C语⾔中使⽤%d,%o,%x来改变,⽐如
int n = 15;
printf("%dn",n);
printf("%o",n);
printf("%x\n",n);
printf("%X\n",n);
15
17
f
F
在C++中
int n = 15;
cout << n << endl;
cout << oct << n << endl;
cout << hex << n << endl;
15
17
f
输出到⽂件
在C/C++中如何使⽤输⼊输出流呢?下⾯我们来⼀⼀看,其实都很简单。
C
⾸先我们需要⽂件指针
FILE *fin, *fout;
fin = fopen("data.in", "rb");
fout = fopen("data.out", "wb");
然后我们只需要输⼊和输出改成如下就可以了
int a;
fscanf(fin, "%d", &a);
fprintf(fout, "%d", a);
等我们不想⽤⽂件输⼊输出的时候只需要把fin改成stdin,把fout改成stdout就⾏了。
int a;
fscanf(stdin, "%d", &a);
fprintf(stdout, "%d", a);
最后我们使⽤完毕,要记得的关闭⽂件
fclose(fin);
fclose(fout);
C++
优秀的C++就更简单了,只要引⼊fstream头⽂件,然后不需要指针,这⾥直接就是专门的类ifstream与ofstream. ifstream fin("data.in");
ofstream fout("data.out");
同样的,把输⼊输出该成
int a;
fin >> a;
fout << a << endl;
不想⽤的时候改回来就⾏了
int a;
cin >> a;
cout << a << endl;
最后我们使⽤完毕,要记得的关闭⽂件
fin.close();
fout.close();

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。