gpt4 book ai didi

c - 如何从c中的输入文件读取结构信息

转载 作者:行者123 更新时间:2023-11-30 16:38:04 24 4
gpt4 key购买 nike

我正在尝试将输入文件中的数据存储到结构中,但我不确定我做错了什么。这是输入文件。

4 2     1 1     3 1

1 1 2 1 3 1

1 1 5 3 1 1

每个数字中的第一个数字应存储为沙子,第二个数字应存储为宝藏。

这是迄今为止我的代码:

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

#define PIRATES
#define MAP_SIZE 3

//structures
struct pirate {
int dig;
int carry;
};

struct map {
int sand;
int treasure;
};


//functions
int hours_crew ();
void scan_file ();

//main function
int main() {
FILE * ifp = NULL;
struct map map[MAP_SIZE][MAP_SIZE];
int i, j;
char filename[30];

printf("You have arrived at Treasure Island!\n");

while (ifp == NULL) {
printf("What is the name of your map?\n");
scanf("%s", &filename);

ifp = fopen(filename, "r");
}

for(i=0; i<MAP_SIZE; i++) {
for (j=0; j<MAP_SIZE; j++) {
fscanf(ifp, "%d", &map[i][j].sand);
fscanf(ifp, "%d", &map[i][j].treasure);
}
}

for(i=0; i<MAP_SIZE; i++) {
for (j=0; j<MAP_SIZE*2; j++) {
printf("%d", map[i][j].sand);
printf("%d\n", map[i][j].treasure);
}
}


fclose(ifp);
return 0;
}

最佳答案

您的代码看起来非常好,所以我决定复制它并看看出了什么问题。

订单做得非常好,只需添加一些评论,这将是一个专业的作品。

请下次阅读有关how to write a question的说明并详细解释问题所在。

无论如何,在解决结构问题之前,第 34 行会出现一个警告:

scanf("%s", &filename);

format specifies type 'char ' but the argument has type 'char ()[30]'

如果将其更改为:

,则可以轻松修复它
scanf("%s", filename);

现在,据我了解,结构没有问题。

如果您只是更改打印:

for (j=0; j<MAP_SIZE*2; j++) {

至:

for (j=0; j<MAP_SIZE; j++) {

看起来会很棒。

GL

关于c - 如何从c中的输入文件读取结构信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47612127/

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