我试图用扫描仪复制一个文本(CSS)文件,并删除所有与这一模式相符的声明:
@import “some/file/some where.css”;
为了做到这一点,我设立了以下机构:
FILE *file = fopen(pathToSomeFile, "r");
char *buffer = (char *)malloc(sizeof(char) * 9000);
while(!feof(file))
{
// %*[^@] : Read and discard all characters up to a @
// %8999[^;] : Read up to 8999 characters starting at @ to a ; .
if(fscanf(file, "%*[^@] %8999[^;]", buffer) == 1)
{
// Do stuff with the matching characters here.
// This code is long and not relevant to the question.
}
}
这完全是SO LONG AS, VERYIRST在档案中的性质不是@ 。 (嗣后,在特别安全局档案中第一个@ 特性之前的单一空间将对该代码进行罚款。)
但是,如果中心档案中的第一个特征是@ ,那么我所看到的夸张中的东西是无限的 lo——处决在 lo期间进入,打上了假冒的口号,但如声明(fscanf方)失败,则不会进入。
我认为,我的扫描格式可能需要一些 t,但无法保证如何进行。 任何建议或解释为什么发生这种情况?
谢谢。