FILE *file;
char text[R];
char *splitter;
fgets(text,R,file);
splitter =strtok(text," ,.-;");
while (splitter!=NULL)
{
    printf("%s\n",splitter);
    splitter=strtok(NULL," ,.-;");
}

txt文件显示:
Hello lad,
how are you
doing

(这是我为测试而写的随机文本)
此代码只会拆分“hello lad”,不会向上移动到下一行。
我可以用数组来实现,但练习是由用户读取一个随机的txt,这样我就可以在每行中有未定义的行和字符串。
有人能给点提示吗?
我的一个想法是数线和弦,但我想先得到另一个意见。。。
提前谢谢

最佳答案

您只调用fgets一次,因此您只读取一行文本。
您需要循环调用fgets直到没有剩余的内容。

while (fgets(text,R,file)) {
    splitter =strtok(text," ,.-;");
    while (splitter!=NULL)
    {
       printf("%s\n",splitter);
        splitter=strtok(NULL," ,.-;");
    }
}

关于c - 从C中的txt文件读取和拆分未定义的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49781576/

10-13 08:13