gpt4 book ai didi

c - 读取文件行,将每一行放入一个数组中,然后打印

转载 作者:太空宇宙 更新时间:2023-11-03 23:32:22 24 4
gpt4 key购买 nike

我刚刚想出如何用整数来做到这一点,所以决定试一试字符串,结果卡住了。

这是我的文件“kw”中的内容:

keyword0
keyword1
keyword2
keyword3

使用当前代码,我得到“错误:格式‘%s’需要‘char *’类型的参数,但参数 3 的类型为‘char **’

#include <stdio.h>

int main () {
FILE *pFile;

pFile = fopen("kw", "r");

if (pFile != NULL) {

char *a[3];
int i;

for(i = 0; i <= 3; i++) {
fscanf(pFile, "%s", &a[i]);
printf("%s\n", a[i]);
}
}
return 0;
}

有人能给我指出正确的方向吗?谢谢。

最佳答案

这段代码有几个问题:

  • 您正在遍历数组 a 的四个元素,而数组只有三个元素。
  • 您没有为正在使用 scanf 读取的字符串分配空间.
  • 读取字符串时不传递地址的地址。

要解决第一个问题,请更改 <=对于 !=< ,像这样:

for(i = 0; i != 3; i++)

要解决第二个和第三个问题,请使用 malloc :

a[i] = malloc(21*sizeof(char));
fscanf(pFile, "%20s", a[i]);

完成分配的数据后,不要忘记释放字符串:

for(i = 0; i != 3; i++) {
free(a[i]);
}

关于c - 读取文件行,将每一行放入一个数组中,然后打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12683974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com