#include<stdio.h>
#include<stdlib.h>
main()
{
FILE *fp;
char *lineptr = NULL;
size_t len;
size_t read;
fp = fopen("test.txt","r");
if(NULL == fp)
{
exit(1);
}
while((read=getdelim(&lineptr,&len,33,fp))!= -1)
{
    printf("%s",lineptr);
}
free(lineptr);
}

在test.txt中
before giving tab !after tab has been given

我已经准备好了!作为分隔符,但我在getdelim中看不到getline和getdelim之间的任何区别,我可以设置delimter,但如果getline是newline字符,我希望o/p是
 before giving tab
 after tab has been given

! 应该作为分隔符使用getdelim

最佳答案

这是未测试的,但请尝试更改printf行,以便可以看到差异:

printf("%s\n",lineptr);

09-08 00:12