[英]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.