我有问题读取与字符串sscanf
。 我有简单化的代码把重点放在这个问题。 下面是一个应该打开一个文件,读的东西整个代码的功能。 但sscanf
得有些奇怪。 例如我宣布一个名为字符串atm
与内容'ATOM'
。 在之前sscanf
它打印这个字符串作为ATOM
一段时间后,它为空。 可能是什么问题呢? 我认为它必须是一个分配的问题,但我找不到它。 我尝试了其他议题提出了一些建议像更换%s
与其他的东西,但它并没有帮助。
void Get (struct protein p, int mode, int type)
{
FILE *fd; //input file
char name[100]="1CMA"; //array for input file name
char string[600]; //the array where each line of the data file is stored when reading
char atm[100]="ATOM";
char begin[4];
int index1 =0;
fd = fopen(name, "r"); // open the input file
if(fd==NULL) {
printf("Error: can't open file.\n");
return 1;
}
if( type==0 ) { //pdb file type
if( mode==0 ) {
while( fgets(string, 600, fd)!=NULL ) {
printf("1 %s\n",atm);
sscanf (string, "%4s", begin );
printf("2 %s \n",atm);
}
}
}
fclose(fd);
free(fd);
free(name);
}