用c语言读txt文件,txt文件内容为30行数据,每行数据有两列,第一列是由字母和数字组成的名称,第二列是数字。我需要从第一行读到最后一行,并把第二列数据保存到以第一列名称命名的数组里。
时间: 2024-03-16 12:43:20 浏览: 53
好的,以下是一个基本的实现方法:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LINES 30
#define MAX_NAME_LEN 20
int main() {
FILE *fp;
char name[MAX_NAME_LEN];
int num;
int nums[MAX_LINES];
int i = 0;
fp = fopen("data.txt", "r");
if(fp == NULL) {
printf("Failed to open file.\n");
return 1;
}
while(fscanf(fp, "%s %d", name, &num) != EOF) {
nums[i] = num;
i++;
}
fclose(fp);
// test
for(int j = 0; j < i; j++) {
printf("%s: %d\n", name, nums[j]);
}
return 0;
}
```
这个程序首先打开名为 "data.txt" 的文件,然后从第一行到最后一行,每行读取两个值:一个字符串和一个整数,分别存储在 `name` 和 `num` 变量中。程序将每个 `num` 存储在 `nums` 数组中,使用 `i` 变量来跟踪已经存储的数字数量。最后,程序输出每个名称和对应的数字,以进行测试。
请注意,此代码并未对数组 `nums` 进行越界检查,因此如果文件中的行数超过了 `MAX_LINES` 或任何名称超过了 `MAX_NAME_LEN`,程序可能会崩溃或产生未定义的行为。
阅读全文