gpt4 book ai didi

c - 将 .dat 中的值赋给 C 中的数组

转载 作者:行者123 更新时间:2023-11-30 19:22:31 25 4
gpt4 key购买 nike

这可能是一个简单的问题,但我必须问这个问题,因为我还没有学过。当这些元素来自外部文件时,我不确定如何将元素分配给数组。这听起来可能有点令人困惑,它基本上是这样的:

我有 2 个文件(当然是 3 个,但一旦我学会了如何处理这个问题,我就可以将相同的方法应用于另一个文件),gn1.c 和 Scores.dat。

在 gn1.c 中,我有一个二维数组,其定义如下:

int scores[13][4];

它没有初始化为任何内容。我想为该数组的每个元素分配一个存储在另一个文件“scores.dat”中的特定整数。

scores.dat 的完整内容如下:

88 77 85 91 65 72 84 96 50 76 67 89 70 80 90 99 42 65 66 72 80 82 85 83 90 89 93 
98 86 76 85 99 99 99 99 99 84 72 60 66 50 31 20 10 90 95 91 10 99 91 85 80

所以,本质上,我希望分数[0][0]为88,分数[0][1]为77等等;

这些值将被存储,以便稍后在程序中我像这样引用它:

if(scores[12][3] < 90)
a_ct++;

scores[12][3] 将被读取为 80。

那么我想要做的事情是否有特定的语法,或者我是否误解了某种基本语法?

最佳答案

您必须使用 fopen、fread 和 fclose 等函数来读取该文件 - 它们都在 stdio.h 中定义。

您首先必须像这样打开文件:

FILE * fp = fopen( "scores.dat", "r" ); // "r" means read.

然后你会用 fread 读取文件,有点像这样:

char number[ 2 ];
fread( fp, 1, 2, number );

然后您可以使用 atoi(asci 到整数)将该数字转换为整数

scores[ 0 ][ 0 ] = atoi( number );

您将循环执行此操作,直到读完所有值为止。当你完成后,你关闭文件。

fclose( fp );

以下是一些可查看更多信息的链接:

http://www.cplusplus.com/reference/cstdlib/atoi/

http://www.cplusplus.com/reference/cstdio/fopen/?kw=fopen

http://www.cplusplus.com/reference/cstdio/fread/?kw=fread

http://www.cplusplus.com/reference/cstdio/fclose/

您可能需要引用这些来检查函数是否有错误(为了清楚起见,我在上面的代码中没有这样做)。如果您也对 C++ 感兴趣,它的标准库中的函数也使其变得非常简单。

关于c - 将 .dat 中的值赋给 C 中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16027176/

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