C 在文件中读取时忽略注释

C 在文件中读取时忽略注释,c,C,我意识到这是一个非常简单的问题,我希望能够通过在互联网上搜索找到答案,但我不能。 我所要做的就是读取一个文件,但忽略以散列开头的注释。 所以 所以跳过文件中的一行是可以的,但是我有一些文件,其中有几行是由一个哈希键进行的,我需要跳过。有人能帮我吗?我似乎找不到答案。 如果(buf[0]='#')继续,则添加到循环的开头。如果注释标记是行中的第一个字符 while((fgets(buf,bsz,fp_in))! ==NULL) { if (buf[0] == '#') continue;

我意识到这是一个非常简单的问题,我希望能够通过在互联网上搜索找到答案,但我不能。 我所要做的就是读取一个文件,但忽略以散列开头的注释。 所以

所以跳过文件中的一行是可以的,但是我有一些文件,其中有几行是由一个哈希键进行的,我需要跳过。有人能帮我吗?我似乎找不到答案。
如果(buf[0]='#')继续,则添加
到循环的开头。

如果注释标记是行中的第一个字符

while((fgets(buf,bsz,fp_in))! ==NULL) {
  if (buf[0] == '#') continue;
  double x,y,x;
  sscanf(buf, "%lf %lf %lf\n", &x,&y,&z);
  /////allocate values////
}

将忽略注释行。如果不是那么简单,就无法避免扫描行中的注释。

这甚至不应该编译
open
返回一个
int
,而不是
文件*
。谢谢,我以前从未见过continue命令。非常有用。
FILE *fp_in;
int chr;
if((fp_in = fopen("file_name.txt","r")) == NULL){
   printf("File not opened\n");
   exit(1);
}

while((chr = fgetc(fp_in) != EOF){
    if(chr == '#'){
       while((chr = fgetc(fp_in)) != '#' || (chr != EOF)); /*skip*/
    }
  //do the processing.
}
FILE *fp_in;
int chr;
if((fp_in = fopen("file_name.txt","r")) == NULL){
   printf("File not opened\n");
   exit(1);
}

while((chr = fgetc(fp_in) != EOF){
    if(chr == '#'){
       while((chr = fgetc(fp_in)) != '#' || (chr != EOF)); /*skip*/
    }
  //do the processing.
}