//刚写的下面的代码,测试通过,如果有疑问,欢迎交流
//只要忽略数组的第一个元素的就可以了
//另外需要需要,可以把数组修改为二维数组
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
char tar[10000];
int cur_lib[1000];
char *ch;
FILE * fp = fopen("tar.txt", "r");
while(fgets(tar, 10000, fp)!=NULL){
ch = strtok(tar, " ");
int cur_count = 0;
while(ch!=NULL){
cur_lib[cur_count] = atoi(ch);
ch = strtok(NULL, " ");
cur_count++;
}
}
fclose(fp);
return 0;
}
追问我想将每行放入数组的元素显示出来,然后在第二个while里加入了printf("%d\t",cur_lib[cur_count]);但是显示出来的有乱码,第1个图是源数据,我把id都删了,只剩下数据了,就想将每行数据存入一个数组,将其打印出来,调用一个函数计算该行数组得出一个值,
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/18d8bc3eb13533faa6b42e81abd3fd1f41345b1a?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/6c224f4a20a44623b9c218cd9b22720e0cf3d711?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追答如果这样话,估计应该是你添加的语句有错误,我刚测试了:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
char tar[10000];
int cur_lib[1000];
char *ch;
FILE * fp = fopen("tar.txt", "r");
while(fgets(tar, 10000, fp)!=NULL){
ch = strtok(tar, " ");
int cur_count = 0;
while(ch!=NULL){
cur_lib[cur_count] = atoi(ch);
printf("%d ", cur_lib[cur_count]);
ch = strtok(NULL, " ");
cur_count++;
}
printf("\n");
}
fclose(fp);
return 0;
}
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/48540923dd54564e81095c96b0de9c82d1584f34?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追问还有个问题就是我输出的时候每行都显示个0
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/8ad4b31c8701a18bf3e8bae09d2f07082838fe1a?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追答恩,这个是因为数据的每一行最后都多了一个空格。
为了解决这个问题,可以修改下程序。我是之前把最后一个空格都去掉了。
追问那为什么71682那一行的最后一个没有0?该怎么改啊
追答我修改了下,主要是因为最后有空格+回车换行的时候,会出现这种问题,修改之后,处理了换行的情况,然后就不会输出多余的0了
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
char tar[10000];
int cur_lib[1000];
char *ch;
FILE * fp = fopen("tar.txt", "r");
while(fgets(tar, 10000, fp)!=NULL){
ch = strtok(tar, " ");
int cur_count = 0;
while(ch!=NULL){
if(strcmp(ch, "\n") != 0){
cur_lib[cur_count] = atoi(ch);
printf("%d ", cur_lib[cur_count]);
cur_count++;
}
ch = strtok(NULL, " ");
}
printf("\n");
}
fclose(fp);
return 0;
}