我有一个包含文件格式一样多的客户记录:检查下一行
CUSTOMER ...
details...
details...
CUSTOMER...
details...
details...
details...
CUSTOMER...
.
.
我需要将文件分割成两个。目前,我将文件中的所有行数除以2
,然后检查该行是否以字符串CUSTOMER
开头。
如果是这样,我如何才能在客户面前打印所有行?
和
如果没有,我怎么能检查,如果下一行与CUSTOMER
开始?
我的代码:
int main(int argc, char *argv[])
{
char ioarea[1000];
int TotCustLines=0,i=0;
int reqLine=0;
int getLine=0;
if((inFile=fopen(argv[inFileName],"r"))==NULL)
printf("Failed to open input file");
while(fgets(ioarea,BUFFER_SIZE,inFile))
{
TotCustLines++;
}
}
if(TotCustLines/2==0)
reqLine=(TotCustLines/2);
else
reqLine=(TotCustLines/2)+1;
fseek(inFile,1,SEEK_SET);
while(fgets(ioarea,BUFFER_SIZE,inFile))
{
getLine++;
if(getLine==reqLine)
{
if(strncmp(getLine,"CUSTOMER RECORD",15)==0)
//How to write all the lines before customer record.
//If not how can i check next line.
}
}
请提出一个解决方案。我对C文件概念很陌生。
缩进您的代码 – 2014-11-04 15:21:38
'if(strncmp(getLine,“CUSTOMER RECORD”,15)== 0)' - >'if(strcmp(ioarea,“CUSTOMER RECORD \ n”)== 0)' – chux 2014-11-04 15:23:31
你想创建2个新文件,并删除原始文件? – anatolyg 2014-11-04 16:47:31