c - 从 C 中的 txt 文件中读取和拆分未定义的字符串

标签 c file split strtok

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/

相关文章:

batch-file - 使用命令行将文本文件拆分为较小的多个文本文件

c - C 中是否有类似于 SQL 中的 LIKE 的函数来比较 2 个字符串?

C 中的 char* 和 boolean 值 TRUE FALSE

python - 无法在使用系统调用运行 Python 脚本的 PostgreSQL 中执行 C 函数

objective-c - 可以将另一个项目添加到现有枚举类型吗?

file - 将文件传输到网络 worker : DataCloneError: The object could not be cloned

c++ - 无法在 Windows 中以编程方式 (C++) 从其他用户帐户读取文件

java - JAVA填充二维数组

java字符串拆分(字符串,整数)

python - 如何将 float 拆分并保持在一起 Ruby 和 Python