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.
}