c语言逐行读取文件数据并放入数组中

源文件txt里面的数据格式:idattribute596031563769151111151111111168219157168212612121216161212我想逐... 源文件txt里面的数据格式:
id attribute
59603 15
63769 15 11 11 15 11 11 11 11
68219 15
71682 12 6 12 12 12 16 16 12 12
我想逐行读取放入数组中,并且第一列的数据(id)跳过去将其保存在另外一个文件(out.txt)里,每次读取一个数组我会对其使用函数fun()计算一个值并将其放入out.txt中与其对应的id号后面
行数很多,每行的列数不一定
展开
 我来答
寒寒家
2015-01-09 · TA获得超过2921个赞
知道大有可为答主
回答量:1482
采纳率:100%
帮助的人:1987万
展开全部
//刚写的下面的代码,测试通过,如果有疑问,欢迎交流
//只要忽略数组的第一个元素的就可以了
//另外需要需要,可以把数组修改为二维数组
#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都删了,只剩下数据了,就想将每行数据存入一个数组,将其打印出来,调用一个函数计算该行数组得出一个值,

追答

如果这样话,估计应该是你添加的语句有错误,我刚测试了:

#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;
}

lgao622
2015-07-23 · 知道合伙人软件行家
lgao622
知道合伙人软件行家
采纳数:1137 获赞数:6550
毕业于武汉工程大学邮电与信息工程学院通信专业,软件行业,4年工作经验。

向TA提问 私信TA
展开全部
#include<stdio.h>

int main()
{
    FILE *fp;
    int i = 0;
    char data[100][80];
    fp = fopen("1.txt", "r");
    if (!fp) 
        return -1;
    while (!feof(fp)) 
        fgets(data[i++], 80, fp);
    fclose(fp);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式