关于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");
}
这样好像不行,运行不成功!!
高手指点!! 展开
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");
}
这样好像不行,运行不成功!!
高手指点!! 展开
1个回答
展开全部
错误
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");
}
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");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |