用C语言写一个程序,要求读取文件中的数据,第一行为一个int,读取后赋值给C,第二行为多个用逗号区分的int,读取后加入到一个名为value的数组,第三行为多个用逗号区分的int,读取后加入到一个名为weight的数组
时间: 2024-05-06 20:17:51 浏览: 57
C语言程序中的文件的读入方法
5星 · 资源好评率100%
以下是一个示例程序,可以实现读取文件中的数据,并将其存储在变量C、value数组和weight数组中:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_VALUES 100 // 最大可存储的value和weight数目
int main() {
int C; // 存储第一行的int
int value[MAX_VALUES], weight[MAX_VALUES]; // 存储第二行和第三行的int
int i = 0; // 数组索引变量
char line[1024]; // 存储每一行的字符数组
char *token; // 存储每个逗号分隔的值的指针
// 打开文件
FILE *fp = fopen("data.txt", "r");
if (fp == NULL) {
printf("无法打开文件\n");
return -1;
}
// 读取第一行
fgets(line, sizeof(line), fp);
C = atoi(line);
// 读取第二行
fgets(line, sizeof(line), fp);
token = strtok(line, ",");
while (token != NULL && i < MAX_VALUES) {
value[i++] = atoi(token);
token = strtok(NULL, ",");
}
// 读取第三行
i = 0;
fgets(line, sizeof(line), fp);
token = strtok(line, ",");
while (token != NULL && i < MAX_VALUES) {
weight[i++] = atoi(token);
token = strtok(NULL, ",");
}
// 关闭文件
fclose(fp);
// 输出读取的数据
printf("C = %d\n", C);
printf("value = [");
for (int j = 0; j < i; j++) {
printf("%d", value[j]);
if (j != i - 1) {
printf(", ");
}
}
printf("]\n");
printf("weight = [");
for (int j = 0; j < i; j++) {
printf("%d", weight[j]);
if (j != i - 1) {
printf(", ");
}
}
printf("]\n");
return 0;
}
```
假设我们的数据文件名为 data.txt,其内容如下:
```
10
1,2,3,4,5
2,4,6,8,10
```
则程序的输出结果应该为:
```
C = 10
value = [1, 2, 3, 4, 5]
weight = [2, 4, 6, 8, 10]
```
阅读全文