从txt文件读取并输入到C中的数组
发布时间:2020-12-16 09:49:39 所属栏目:百科 来源:网络整理
导读:我有我的txt文件 4 110 220 112 335 4是行数和4 * 3的int数.我必须读“4”然后读取剩余的并将它们输入到数组中 这就是我所拥有的 void main(){ int a,n; int i=0,j=0,k[30]; // int *N; FILE *fp = fopen("test.txt","r"); if(fscanf(fp,"%d",a) != 1) { //
我有我的txt文件
4 110 220 112 335 4是行数和4 * 3的int数.我必须读“4”然后读取剩余的并将它们输入到数组中 这就是我所拥有的 void main(){ int a,n; int i=0,j=0,k[30]; // int *N; FILE *fp = fopen("test.txt","r"); if(fscanf(fp,"%d",&a) != 1) { // // something's wrong } n=3*a; //3*a numbers in the file N = malloc(3 * a * sizeof(int)); for(i = 0; i <n;++i) { int result=fscanf(fp,&N[i] ); } fclose(fp); for(j=0;j<3*a;j++){ k[j]=N[j]; } printf("%d",k[0]); } 当我打印k [0]时,它应该打印“1”,而是打印整行“110” 还有其他办法吗? 解决方法
格式说明符%d没有指定长度,因此fscanf将读取尽可能多的数字;这就是为什么你得到110而不是1.
如果你指定一个长度,比如?,它将只读取你告诉它的数字: for(i = 0; i <n;++i) { int result=fscanf(fp,"%1d",&N[i] ); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |