从 C 中的 txt 文件中读取和拆分未定义的字符串
Read and split undefined strings from txt file in C
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," ,.-;");
}
}
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," ,.-;");
}
}