求改程序代码 手动输入改成读取.txt文件的形式
这个是生成txt文件的程序,v的输入范围不大于20(老师给我的要求就是1到2的20次方之间的随机数),我写的时候没有考虑过大于20会出现什么情况,反正满足20以下不会出错就好了。程序代码:
#include <stdio.h> #include <stdlib.h> #include<time.h> #include<math.h> int main(int argc, char *argv[]) { long a[10000],i=0,j,t,num,v,max; FILE *fp=fopen("text.txt","w"); printf("please enter the variable="); scanf("%d",&v); printf("please enter the munber="); scanf("%d",&num); fprintf(fp,".v %d\n.num %d\n",v,num); //第一行显示.i i的大小,第二行显示.M M的大小 srand(time(NULL)); max=(long)pow(2,v); while(i<num) { a[i]=(long)(rand()*rand()%max+1); for(j=0;j<i;j++) { if(a[j]==a[i]) break; } if(j==i) { i++; } } for(i=0;i<num-1;i++) for(j=i+1;j<num;j++) if(a[i]>a[j]) { t=a[i];a[i]=a[j];a[j]=t; } for(i=0;i<num;i++) fprintf(fp,"%-d ",a[i]); fclose(fp); return 0; }
现在有另一个程序,本来是手动输入的,但是如果要输入2000个数据,一个一个输入那确实要输入老半天。所以按要求谢了上面的程序。但是我不知道怎么正确的读取txt文件中数据。所以求助大神,能不能帮忙改一下。或者给个详细点的解决方案!谢谢!
下面的就是主程序,主程序还包含很多副程序,因为没有必要,就不贴了。主要就是把输入方式改一下就好了。或者有没有什么好的例子可以借鉴的?
程序代码:
int main() { int num,i,n,maxbit; NODE* p; printf("请输入数的个数:(不等于0,至少输入2个)\n"); scanf("%d",&num); LISTNODE *listnodep=malloc(sizeof(LISTNODE)); add_listnode(listnodep); listnodep->listhead=NULL; for(i=0;i<num;i++){ printf("第%d个数:",i+1); scanf("%d",&n); p=malloc(sizeof(NODE)); p->num=n; add_node(&listnodep->listhead,p); } //这句话上面的就是程序的输入部分 chnum=0; for(p=listnodep->listhead,n=-1;p;p=p->next){ n=n&p->num; } if(n==0){ if(condition_check(listnodep->listhead)){ chnum+=num; }else{ loop(); } }else{ chnum+=count1(n); maxbit=count_maxbit(listnodep->listhead); n=~(unsigned int)n%(1<<maxbit); for(p=listnodep->listhead;p;p=p->next){ p->num&=n; } if(check_all0(listnodep->listhead)){ }else{ delete_all0(&(listnodep->listhead)); if(listnodep->listhead->next==NULL){ chnum+=count1(listnodep->listhead->num); }else{ if(condition_check(listnodep->listhead)){ chnum+=countnum(listnodep->listhead); }else{ loop(); } } } } printf("字母数=%d\n",chnum); system("pause"); return 0; }