簡體   English   中英

使用 strtok 時如何跳過輸入文件中的空行?

[英]How I can skip a blank line in an input file when using strtok?

我想使用 strtok 傳遞文件的行; 這些值以逗號分隔。 然而,strtok 也會讀取只包含空格的空行。 在這種情況下不應該返回 null 指針嗎?

我怎么能忽略這樣的一行? 我試圖檢查 NULL,但如上所述它不起作用。

void function_name(void)
{

  const char delimiter[] = ",";
  char line_read[9000];
  char keep_me[9000];
  int i = 0;

  while(fgets(line_read, sizeof(line_read), filename) != NULL)
  {
      /*
       * Check if the line read in contains anything
       */
      if(line_read != NULL){
          keep_me[i] = strtok(line_read, delimiter);
          i++;
          }
  }

}

所以來解釋一下。

您正在使用 while 循環讀取文件,該循環將整個文件逐行 ( fgets ) 讀取到數組line_read中。

每次讀取一行時,它都會檢查它是否包含任何內容( NULL檢查)。

如果它確實包含某些內容,則使用strtok對其進行解析並將其讀入keep_me ,否則它將保留在您顯然不會在程序中使用的line_read數組中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM