with header;
with linker;
package body(* some text )
vin float32=2.0;
mis float32=3.0;
raj pointtodatatype.array(.234,-.2344323343,.234555656,.2334445344)
rex float32=3*3.142345634;
procedure
我想从文本文件中读取此数据,并在从package
开始到开始procedure
的行之间复制数据。
因此输出将是包含以下内容的另一个文本文件:
vin float32=2.0;
mis float32=3.0;
raj pointtodatatype.array(.234,-.2344323343,.234555656,.2334445344)
rex float32=3*3.142345634;
答案 0 :(得分:1)
#include <stdio.h>
#include <string.h>
int main(void)
{
char line[4096];
while (fgets(line, sizeof(line), stdin) != 0)
{
if (strncmp(line, "package ", sizeof("package ")-1) == 0)
{
while (fgets(line, sizeof(line), stdin) != 0)
{
if (strncmp(line, "procedure\n", sizeof("procedure\n")-1) == 0)
break;
fputs(line, stdout);
}
break;
}
}
return 0;
}
代码从标准输入读取并写入标准输出。如果您有file1
中的数据并希望结果为file2
,请使用:
./program <file1 >file2
这是标准输入/标准输出过滤器和shell I / O重定向的优点之一。
经过测试。假设procedure
后没有尾随空白,代码现在会查找"procedure\n"
。如果您必须允许可能的尾随空白或没有尾随空白,procedure
的比较更为明显。