我有一个文本文件,里面有很多行和字符串数据,也就是说,我不知道有多少行,每行有多少个单词。
所以,我决定动态地做所有事情。我有一个2D链表,例如:
struct Node
{
char word[50];
struct Node* words;
struct Node* next;
}
我的清单:
Node -> Node("something") -> Node("something") //length is random
|
v
Node -> Node("something") -> Node("something") -> Node("something") //length is random
.
.
.
我的问题是解析文件。当我使用while( fscanf(file, "%s", word) == 1 )
时,它在不检查行尾的情况下获取单词。当我想使用fgets(line, sizeof(line), file)
时,我需要指定行的大小,但我不知道行的大小。我的目的是从一行插入单词,直到该行的末尾,然后我将创建另一个节点,我将从该行插入单词到新节点,依此类推。
如何解析我的文件?还有其他功能吗?
1条答案
按热度按时间bz4sfanl1#
您可以使用
strtok
将每行拆分为单独的单词。只要记住strcpy
每个字从strtok
因为它不做一个副本,而是编辑缓冲区和指针操作引用不同部分的缓冲区。下面是相同的程序工作at this site