gpt4 book ai didi

c - 如何从文本文件中读取值并将它们存储在两个不同的数组中?

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

文本文件包含 52 行,格式如下:

A .013420
B .000191
C .011222
...

我想忽略这些字母,我需要从文件中提取值,并将前 26 个值存储在一个名为 freqOne[] 的数组中,并将后 26 个值存储在另一个名为 freqTwo[] 的数组中。稍后我将使用这些值进行计算。这是我的尝试:

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

int main (){

FILE *input1;
/*char freqOne[26]; i use these arrays for attempt 1
char freqTwo[26];*/
double freqOne[26];
double freqTwo[26];


input1 = fopen("test8.txt", "r");
if(input1 == NULL){
perror("test8.txt");
exit(EXIT_FAILURE);
}

/* attempt one: all the values print out correctly but idk how to use them :(*/

/*while(fgets(freqOne, sizeof(freqOne), input1)){
printf("%s", freqOne);
}
while(fgets(freqTwo, sizeof(freqTwo), input1)){
printf("%s", freqTwo);
}
*/

/*fclose(input1); */

int h;
int i;
/* another attempt i made, this one prints out the a large negative number for every element :(*/
for(i=0; i<26; i++){
fscanf(input1,"%lf", &freqOne[i]);
printf("%lf\n", freqOne[i]);

}
for(h=0;h<26; h++){
fscanf(input1,"%lf", &freqTwo[h]);
printf("%lf\n", freqTwo[h]);

}
fclose(input1);

/*a = (freqOne[0]-freqTwo[0])*(freqOne[0]-freqTwo[0]);
printf("%lf", a);*/
}

在我的第一次尝试中,我能够正确打印出所有值,但我不确定如何使用它们。我将它们打印为字符串,但是当我尝试将它们打印为 %lf 时,它为每个值提供了 0。在我的第二次尝试中,我做了一些谷歌搜索,发现我应该尝试 fscanf 函数,但这对任何一个都不起作用,并且每个值都会打印出一个大负数。我现在陷入困境,没有想法。

最佳答案

所以OP可以关闭这篇文章:

要忽略 A、B、C 等,请使用赋值抑制 '*'

// fscanf(input1,"%lf", &freqOne[i]);
fscanf(input1,"%*s %lf", &freqOne[i]);

检查 I/O 函数结果始终是个好主意:

if (fscanf(input1,"%*s %lf", &freqOne[i]) != 1) Handle_Unexpected_Input();

关于c - 如何从文本文件中读取值并将它们存储在两个不同的数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26850919/

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