关于C语言中fscanf()函数如何读入文件中下一行的数据!!

我想读入如下文件1,7,1CC,CC,CC,CC,CC,CC,O1,当读完第一行后,如何再读下一行?#include<stdio.h>#include<string.h>... 我想读入如下文件
1, 7, 1
CC, CC, CC, CC, CC, CC, O1,

当读完第一行后,如何再读下一行?
#include<stdio.h>
#include<string.h>

int main()
{ int Comp_Name;
int Ring_Num;
int N_H_Num;

FILE * fp;
if((fp=fopen("inoutdata.txt","r"))== NULL)
{ printf("Cannot open file.\n");
exit(0);
}
fscanf(fp,"%d, %d, %d\n",&Comp_Name,&N_H_Num,&Ring_Num);
printf("%d, %d, %d\n",Comp_Name,N_H_Num,Ring_Num);

int Bond_Num;
Bond_Num=Ring_Num+N_H_Num-1;
printf("Bond_Num=%d",Bond_Num);

char * Non_H_atom[7];
fscanf(fp,"%s,",&Non_H_atom[0]);
int i;
for(i = 1;i<N_H_Num;i++)
{ fscanf(fp," %s,",&Non_H_atom[i]);
}

for(i = 0;i<N_H_Num;i++)
{ printf(" %s,",Non_H_atom[i]);
}
system("pause");
}
这样好像不行,运行不成功!!
高手指点!!
展开
 我来答
ryw12403
推荐于2016-08-05 · TA获得超过1899个赞
知道大有可为答主
回答量:2501
采纳率:0%
帮助的人:2091万
展开全部
错误
1.你的文件里的逗号是中文字符,
2.char * Non_H_atom[7];
这你只是定义了一个字串指针,没有分配空间,
如你要使用就要先分配空间给他,除了刚定义时可以直接赋值。
如char * Non_H_atom[7]={"aa","bb",....;}

改成
#include<stdio.h>
#include<string.h>

int main()
{ int Comp_Name;
int Ring_Num;
int N_H_Num;
int i;
FILE * fp;
int Bond_Num;
char *Non_H_atom[7];

if((fp=fopen("inoutdat.txt","r"))== NULL)
{ printf("Cannot open file.\n");
exit(0);
}
fscanf(fp,"%d,%d,%d",&Comp_Name,&N_H_Num,&Ring_Num);
printf("%d, %d, %d\n",Comp_Name,N_H_Num,Ring_Num);

Bond_Num=Ring_Num+N_H_Num-1;
printf("Bond_Num=%d\n",Bond_Num);

for(i = 0;i<N_H_Num;i++)
{
Non_H_atom[i]=(char *)malloc(5);
fscanf(fp,"%s,",Non_H_atom[i]);
}

for(i = 0;i<N_H_Num;i++)
{ printf("%s",Non_H_atom[i]);
free(Non_H_atom[i]);
}

fclose(fp);
system("pause");
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式