我有一个文件,我正在尝试读取和填充变量。该文件由以下内容组成:
0\ttake a nap\n
1\tstudy heap-based priority queue\n
101\treview trees for Midterm 2\n
3\tdo assignment 7\n
这可能很难阅读,但是您可以看到有一个整数开头,然后是一个制表符,然后是一个字符串,然后是一个换行符。我需要取整数并将其放入变量中,检测制表符,并将制表符后面的字符串放入变量中,检测换行符,获取两个变量并使用信息创建一个节点,然后重新开始下一行。经过数小时的互联网搜索,这就是我想出的:
char activity[SIZE];
char position[SIZE];
char line[100];
FILE *infile;
char *inname = "todo.txt";
int i = 0;
infile = fopen(inname, "r");
if (!infile) {
printf("Couldn't open %s for reading\n");
return 0;
}
while(i < 100 && fgets(line, sizeof(line), infile) != NULL){
sscanf(line, "%s\t%s", position, activity);
printf("%s\n", position);
printf("%s\n", activity);
i++;
}
在上面的 txt 文件上运行此测试代码时,我得到以下结果:
0
take
1
study
101
review
3
do
因此,在我看来,它正在获取第一个数字(作为字符串)并将其放入变量中,查看选项卡,并在选项卡之后抓取第一个序列并在将其放入另一个变量后停在那里。我该如何纠正这种情况?