|
发表于 2020-1-7 01:45:01
|
显示全部楼层
你自己的解释已经定义好了程序的逻辑。实现起来不难,像perl这样的脚本语言可以按行读,很容易处理你的要求。
如果是C语言,简单的办法是一次把文件读到内存,用几个指针就可以处理了。大致的代码如下(注意程序并未调试,可能有错误):
char* buffer;
int filelen;
char* buffer_end = buffer + filelen;
buffer = (char*)malloc(filelen);
/* read file data to buffer*/
char* line_start;
char* line_end;
char line_buffer[1024]; /* maximum line length is 1024 */
line_end = line_start;
while(line_end < buffer_end) {
int line_offset = 0;
line_start = line_end;
while(line_end != '\n') line_end++;
if(line_end >= buffer_end ) break;
if (line_end 之前最后字符是'\') {
strncpy(line_buffer + line_offset, line_start, line_end - line_start);
line_offset += line_end - line_start; // 此处判断是否超过line_buffer大小
}else {
处理line_buffer并清空
strncpy(line_buffer + line_offset, line_start, line_end - line_start);
}
}
|
|