产生某位的所有纯数字密码到文件解决方案
产生某位的所有纯数字密码到文件
RT
比如3位的,就是
000
001
……
999
------解决方案--------------------
RT
比如3位的,就是
000
001
……
999
------解决方案--------------------
- C/C++ code
#include <stdio.h> #include<math.h> void main() { int i, max, n=3; // 位数 char temp[10]; sprintf(temp,"%%0%dd\n",n); max=pow(10,n); for(i=0;i<max;++i) { printf(temp,i); } } 运行结果: 000 001 002 ... 998 999
------解决方案--------------------
没实际编译链接调试,不保证对。仅供参考:
- C/C++ code
#include <stdio.h> int n,i,m; char fn[20]; FILE *f; int main() { scanf("%d",&n); m=1; if (1<=n && n<=9) { for (i=0;i<n;i++) m=m*10; sprintf(fn,"%d.txt",m); f=fopen(fn,"w"); for (i=0;i<m;i++) fprintf(f,"%0*d\n",n,i); fclose(f); } return 0; }
------解决方案--------------------
我写的比较麻烦...不过也贴上来了...
- C/C++ code
#include <stdio.h> #include <string.h> void Itoa(int num,int len,char* str)//数字转字符串 { str[len]='\n';//最后的换行符 while(len>=1){ int nbit=num%10; str[len-1]=nbit+'0'; len--; num=num/10; } } int main(void) { FILE* file=fopen("passwd.txt","wb"); int i=0,len,max=1; printf("请输入密码位数\n"); scanf("%d",&len); for(i=0;i<len;i++) max*=10; for(i=0;i<max;i++) { char str[256]=""; Itoa(i,len,str); printf("str=%s",str); fputs(str,file); } return 0; }
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
C程序员要对
scanf
printf
类函数的使用要做到“拳不离手,曲不离口。”的程度。
在参考这个例子:
- C/C++ code
#include <stdio.h> char s[]="123 ab 4"; char *p; int v,n,k; void main() { p=s; while (1) { k=sscanf(p,"%d%n",&v,&n); printf("k,v,n=%d,%d,%d\n",k,v,n); if (1==k) { p+=n; } else if (0==k) { printf("skip char[%c]\n",p[0]); p++; } else {//EOF==k break; } } printf("End.\n"); } //k,v,n=1,123,3 //k,v,n=0,123,3 //skip char[ ] //k,v,n=0,123,3 //skip char[a] //k,v,n=0,123,3 //skip char[b] //k,v,n=1,4,2 //k,v,n=-1,4,2 //End.
------解决方案--------------------
在参考这个例子:
应为
再参考这个例子:
拼音输入法惹的祸。
------解决方案--------------------
感谢赵老师,学习了。