【发布时间】:2020-10-27 07:08:33
【问题描述】:
在下面的代码中,我想读取第一行为<p> -> <many_declaration> <many_expression> 的文本文件。代码sn-p如下:
ssize_t read;
size_t len = 200;
FILE *fptr;
fptr = fopen(fn ,"r");
if(fptr==NULL){
printf("Error\n");
fclose(fptr);
}
else{
int line_number=1;
char * line = (char *)malloc(sizeof(char)*200);
while((read = getline(&line, &len, fptr)) != -1)
{
char * tokens = strtok(line, " \t\n");
while( tokens != NULL )
{
printf("%s \n",tokens);
printf("%zu \n",strlen(tokens));
tokens = strtok(NULL, " \t\n");
}
}
}
但是,在使用getline() 读取它,然后使用strtok() 拆分字符串时,第一个标记应该是大小为 3 的<p>,但正在读取的字符串是一些不可见的字符,后跟<p> 和长度是 6。你能告诉我问题是什么吗?谢谢!
【问题讨论】:
-
“下面的代码”在哪里?请发帖Minimal, Reproducible Example。
-
我编辑了问题以包含代码,但问题似乎已关闭。