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] ); }总结
以上是内存溢出为你收集整理的从txt文件读取并输入到C中的数组全部内容,希望文章能够帮你解决从txt文件读取并输入到C中的数组所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)