【发布时间】:2013-04-19 08:46:32
【问题描述】:
如何读“;”从c中的文件中分离字符串? 我正在使用以下方法:
char c;
c=fgetc(fp);
while(c!=EOF)
{
int k=0;
if(c=='\n')
c=fgetc(fp);
while(c!=';')
{
str1[k]=c;
k++;
c=fgetc(fp);
}
str1[k]='\0';
c=fgetc(fp);
k=0;
while(c!=EOF && c!='\n')
{
str2[k]=c;
k++;
c=fgetc(fp);
}
str2[k]='\0';
Seq(str1,str2);
printf("\n");
if(c==EOF)
{
break;
}
else
c=fgetc(fp);
}
输入文件:
Hello;world Male;Female where;who
我必须读取不同的字符串值,然后将它们传递给一个函数作为 Seq(hello,world)..等等
有更好的方法吗?
【问题讨论】:
-
定义“更好”?更少的代码行?更高效?更具可读性?如果您的解决方案有效,为什么要修复它?
-
@ams 更易于维护? “为什么要修?” -- OP想把事情做好……为什么要气馁?
-
我还要指出,这是有史以来编写的一些最糟糕的代码(包括未定义的行为),因此强烈建议 OP 重写它以调用库函数。