在C中用空格和分隔符读取多行字符串

如何从C中的文件中读取多行数据,其中每行都有分隔符以分隔该行上的不同数据?

例如,我有一个包含以下文本的文件:

Some Text | More Text | 1:23 Text Again | Even More Text | 4:56 etc... 

这是我尝试过的,但到目前为止它对我没用:

 char str1[20]; char str2[20]; int mins; int secs; char line[50]; while (fgets(line, 50, textFile) != 0) { sscanf(line, "%20[ | ]%20[ | ]%d[:]%d", str1, str2, &mins, &secs) } 

您可以从我的代码中猜测我是C的新手,我感谢任何帮助。

更换

 sscanf(line, "%20[ | ]%20[ | ]%d[:]%d", str1, str2, &mins, &secs) 

 sscanf(line, "%19[^|] | %19[^|] | %d:%d", str1, str2, &mins, &secs); trim_end(str1);//remove the trailing white spaces trim_end(str2); 

 #include  #include  void trim_end(char *s){ size_t len = strlen(s); while(len--){ if(isspace(s[len])) s[len] = 0; else break; } }