当strtok返回NULL时如何继续读取文件

时间:2015-03-11 14:21:53

标签: c file printing segmentation-fault arguments

我有一个文本文件:

hdsf5 sd3 htf2

使用指针a,b,c和strtoking它们工作得很好..但是

使用我的代码阅读这些行很好,但是如果“sd3”缺失则会怎样:

hdsf5 htf2

如果指针在这种情况下返回null,我将如何继续读取文件。

如果(b == NULL)(指针在哪里就足够了?

那就简单了吗?

编辑:我已按照以下方式编写代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main (int argc, char * argv[])
{
    FILE * ptr;
    char str[100];
    char * a, * b, * c;
    //while loop using fgets...
    // strtok each one...

   //convert each one to an integer using (atol())
  //this is where the seg fault/problem occur
}

1 个答案:

答案 0 :(得分:0)

我认为您在这里混合概念:strtok适用于const char *字符串 您可以通过fscanffreadfgets等来阅读文本文件来获取字符串。

strtok返回NULL时,表示字符串中没有更多令牌,但这并不意味着您无法继续读取文件(即获取新字符串以进行标记化):{{1的返回值等等会告诉你的。