gpt4 book ai didi

c - 如何使用用户输入打开文本文件,然后将其加载到二维数组中?

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

这是我的文本文件中的内容。

6814,85,86,92,88
7234,76,81,84,78
6465,87,54,68,72
7899,92,90,88,86
9901,45,78,79,80
8234,77,87,84,98
7934,76,91,84,65
7284,56,81,87,98
7654,76,87,84,88
3534,86,81,84,73

这就是我编码的内容。

void getName(float arr1[x][y])
{
FILE* graFile;
float arr2[x][y];
char userIn[50];
printf("Enter filename: ");
scanf("%s", userIn);
graFile = fopen(userIn, "r");
int studentId, test1, test2, test3, test4;

for(int i = 0; i < x; i++)
{
for(int j = 0; j < y; j++)
{
fscanf(graFile, "%d%d%d%d%d%f", &studentId, &test1, &test2, &test3, &test4, &arr2[i][j]);
arr2[0][0] = studentId;
arr2[0][1] = test1;
arr2[0][2] = test2;
arr2[0][3] = test3;
arr2[0][4] = test4;
}
}
for(int i = 0; i < x; i++)
{
for(int j = 0; j < y; j++)
{
printf("%f", arr2[i][j]);
}
printf("\n");
}
fclose(graFile);
return;
}

我必须编写一个程序,要求用户输入文本文件的名称(其中包含成绩),然后将其加载到二维数组中。然后我必须对成绩进行排序并取平均成绩。我从第一个函数开始,该函数获取用户输入的文本文件名并将其加载到二维数组中。我对 C 编程还是新手,并且很难理解二维数组。我很感激我能得到的任何帮助。

最佳答案

以下建议代码:

  1. 干净地编译
  2. 执行所需的功能
  3. 为预期输入正确“类型”变量
  4. 正确检查错误
  5. 在适当的时候使用puts()
  6. 正确地将错误消息输出到stderr
  7. 避免不必要的变量声明和数据复制
  8. 始终缩进代码
  9. 在适当的情况下使用水平间距以提高可读性
  10. 在调用 printf() 时正确使用格式字符串
  11. 分隔代码块: for if else while do...while switch case, default 通过一个空行,以提高可读性

现在,建议的代码:

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

#define MAX_FILENAME_LEN 50

void getName( int x, int y )
{
int arr2[x][y];
char userIn[ MAX_FILENAME_LEN ];
FILE* graFile;

printf("%s", "Enter filename: ");
if( scanf("%49s", userIn) != 1)
{
fprintf( stderr, "scanf failed to read file name\n" );
exit( EXIT_FAILURE );
}

// implied else, scanf successful

graFile = fopen(userIn, "r");

if( !graFile )
{
perror( "fopen failed" );
exit( EXIT_FAILURE );
}

// implied else, fopen successful

for(int i = 0; i < x; i++)
{
if( fscanf( graFile,
"%d%d%d%d%d",
&arr2[i][0],
&arr2[i][1],
&arr2[i][2],
&arr2[i][3],
&arr2[i][4] ) != 5 )
{
fclose( graFile );
fprintf( stderr, "fscanf failed to read row %d from the input file\n", i );
exit( EXIT_FAILURE );
}
}

fclose(graFile);

for(int i = 0; i < x; i++)
{
for(int j = 0; j < y; j++)
{
printf("%d", arr2[i][j]);
}

puts( "" );
}
}

关于c - 如何使用用户输入打开文本文件,然后将其加载到二维数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53234997/

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