下面是编程之家 jb51.cc 通过网络收集整理的代码片段。
编程之家小编现在分享给大家,也给大家做个参考。
#/bin/bash #对文本里面的数据进行排序 awk 'BEGIN{ RS="," } {print $0} END{ }'<a | sort -n | sed '/^$/ d' | awk 'BEGIN{ RS="\n";ORS="," } {print $0} END{ }'|sed 's/,$//g' 下面是c++版本的。 ---------------------------------------------------------------------- #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; template<int _N> class Bitset { public: Bitset() { _Tidy();//调用_Tidy()函数会初始化所有位为0. } void Show()//显示01位. { for(int _I=0;_I<_N;_I++) { cout<<(test(_I)?'1':'0'); } } bool test(int _P)//测试该位置是否为真(1). { int _I = _P/32; return (A[_I]>>(_P%32))&0x1; } void _Tidy() { for(int _I=0;_I<_W;_I++) { A[_I] = 0; } } void set(int _P)//将_p下标设置为1. { int _I = _P/32; A[_I] |= (0x1<<(_P%32)); } void printf() { for(int _I=0;_I<_N;_I++) { test(_I) && (cout<<_I<<" "); } }//打印排列结果. private: typedef long LONG;//以long的4个字节为一个单位数组. enum{_Nw=(_N-1)/(sizeof(LONG)*8),_W=_Nw+1}; int A[_W]; }; template<int _N> void deal_what(int &sum,char c,Bitset<_N> &a,FILE *&out) { if(c!=' ' && c!=',' && c!='\n') { sum=(sum*10+(c-'0')); return ; } else{ a.set(sum);//将数据设置到指定位中。 } sum = 0; } template<int _N> void get_result(Bitset<_N> &a,FILE *&out) { int sum = 0; while(1) { char c = fgetc(out); if(c==EOF) { return; } deal_what<_N>(sum,c,a,out); } } int get_value(int x,int &n)//求数字位数 { x && (n=get_value(x/10,n)+1); return n; } template<int _N> void in_put(Bitset<_N> &a,FILE *&in)//往文件b里面写入结果。 { for(int _I=0;_I<_N;_I++) { if(a.test(_I)) { int _H=_I; int _K = 0; get_value(_H,_K); int flog = _K; int save=0; while(1) { int sum=1; for(int _J=_K;_J>0;_J--) { sum*=10; } char c = ((_H-save*sum)/(sum/10))+'0'; save = _H/(sum/10); fputc(c,in) ; flog--; _K--; if(flog==0) break; } fputc(' ',in); } } } int main() { FILE *out = fopen("a","a+"); FILE *in = fopen("b","a+"); Bitset<100> a; get_result(a,out); in_put(a,in); fclose(out); fclose(in); }
以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。