我想读取文本文件的各行,其内容如下。
第一
第二
第三
我已经写了一些代码,但是结果与我预期的不同。希望您能对我有所帮助。 (下面的代码)
npm install -g @angular/cli@6
预期输出:
0:第一
1:秒
2:第三名
非常感谢。
答案 0 :(得分:1)
首先,您要为两个 char*
s数组分配空间,并且为字符串提供一个 single 静态大小的缓冲区。但是您正在尝试读取三个字符串。您认为弦的空间来自哪里?您没有分配它。
您需要使各个数字匹配:分配一个三个字符串数组,然后分配一个三个字符串缓冲区:
char **lst = malloc(3 * sizeof *lst);
for (int i = 0; i < 3; i++) {
lst[i] = malloc(10);
fgets(lst[i], 10, fp);
}
也不要忘记随后free
分配所有缓冲区:
for (int i = 0; i < 3; i++) {
free(lst[i]);
}
free(lst);
…当然,此代码也不是很出色,因为它对您可以读取的行数和最大行长进行了硬编码。但这应该可以帮助您入门。