结构体含有整型,字符型。将读取到的txt中每一行不同类型的数据转换为整型并赋值给结构体中响应的元素。,并打印出来
时间: 2024-02-20 19:58:11 浏览: 109
好的,这个问题可以通过以下代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int num;
char name[20];
} Student;
int main() {
FILE *fp;
char *filename = "students.txt";
char line[50];
Student stu;
fp = fopen(filename, "r");
if (fp == NULL) {
printf("Failed to open file %s\n", filename);
exit(1);
}
while (fgets(line, sizeof(line), fp)) {
sscanf(line, "%d %s", &stu.num, stu.name);
printf("Student number: %d, name: %s\n", stu.num, stu.name);
}
fclose(fp);
return 0;
}
```
在这个代码中,我们定义了一个结构体 `Student`,包含了学生的学号和姓名。在 `main` 函数中,我们打开了一个名为 `students.txt` 的文件,并读取了其中的内容。每一行数据都包含了一个整数和一个字符串,使用 `sscanf` 函数将其转换为结构体中的元素,最后打印出来。
需要注意的是,这里假设每一行数据的格式都是正确的,即包含一个整数和一个字符串。如果数据格式不正确,那么程序可能会崩溃或输出错误的结果。在实际应用中,需要根据具体情况进行错误处理。
阅读全文