在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; } }