gpt4 book ai didi

c - fscanf 不读入数组

转载 作者:行者123 更新时间:2023-11-30 17:16:33 25 4
gpt4 key购买 nike

我一直在尝试用文件中的字符串填充结构数组,但 fscanf 不会这样做。代码编译得很好,但是当我测试它时(如果数组实际上已填充),什么也没有出现,就好像什么也没做一样。

    #include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct p{
char name[21];
char lname[21];
} Person;

int main() {

FILE *in;
Person array[100];
int i, n;

in=fopen("people.txt", "r");

if (in == NULL ) {
fprintf(stderr, "Failed to open\n");
exit(EXIT_FAILURE);
}

n=0;

while( fscanf(in, "%s %s", array[n].name, array[n].lname) != EOF)
n++;
*// Here I've tried even with >0 or == 2, nothing worked) //*


fclose(in);


for (i=0;i<n;i++)
printf("%s %s\n", array[i].name, array[i].lname);

return 0;
}

这是 .txt 文件:

Steven Stevenson 
Mark Ronson
Jeff Jefferson
Kyle Roger

只是一个名字列表,仅此而已

这是输出:

Notice the black space inbetween

最佳答案

我运行了这个程序,它运行得很好。我创建了一个包含几个名字的 people.txt 。每行的名字和姓氏之间用一个空格分隔。

您可能想检查输入文件的格式。 fscanf 可能期望名称和姓氏仅用一个空格分隔。

关于c - fscanf 不读入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29613850/

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