当前位置:首页>开发>正文

c语言如何用函数指针利用循环结构遍历多个函数 C程序中如何从文本文件中读取数据到结构体中

2023-05-24 13:20:36 互联网 未知 开发

 c语言如何用函数指针利用循环结构遍历多个函数 C程序中如何从文本文件中读取数据到结构体中

c语言如何用函数指针利用循环结构遍历多个函数

#include #define TYPE int // 下面是加减乘除 4 个函数 TYPE add(TYPE a, TYPE b){return a b} TYPE sub(TYPE a, TYPE b){return a-b} TYPE muti(TYPE a, TYPE b){return a*b} TYPE div(TYPE a, TYPE b){return a/b} int main(int argc, char *argv[]) { // 函数指针数组,一共有 4 四个元素,分别是: // 加减乘除 4 个函数的函数指针 // 你可以自己再添加其他函数,而不用修改代码。 TYPE (*functions[])(TYPE, TYPE) = {add,sub,muti,div} // 函数指针数组中的元素个数,这里是 4 个。 unsigned int n = sizeof(functions)/sizeof(functions[0]) // 要进行运算的数字 TYPE a = 10, b = 5 , result int i=0 for(i=0 i {// 调用函数指针数组里面的所有函数。 result = functions[i](a,b) printf("%d ", result) } return 0 }

C程序中如何从文本文件中读取数据到结构体中?

void writefile(tree t) {
FILE *fp
if (t == NULL) {
return
}
if ((fp = fopen(FILENAME, "wb")) == NULL) {
printf("cant open file %s ", FILENAME)
return
}
preorder(t, fp)
fclose(fp)
}

tree readfile(tree t) {
TSTUDENT r_new
FILE *fp
if ((fp = fopen(FILENAME, "rb")) != NULL) {
printf(" ======Read from this file, Please wait...===== ")
while(fread(&r_new, sizeof(TSTUDENT), 1, fp) == 1) {
inn = (PSTUDENT)malloc(sizeof(TSTUDENT))
*inn = r_new
t = insert(defaultIndex, t)
}
fclose(fp)
}
return t
}

/* 关键之处是要注意使用二进制文件,文本文件可能会忽略掉某些字符,导致读取失败,或读到的全是乱码*/

请问c语言如何从函数返回带有数组的结构体?

你说的这种情况,函数返回的是整个结构体,无论这个结构体中包含了多少个成员,一个结构体就只是一个变量(结构体本身就是一个变量,无论它包含了多少个成员)。这样,函数返回一个结构体就意味着函数把结构体中所有的成员都返回了。C语言函数的确只能有一个返回值,用返回结构体的方式就很好地解决了需要返回多个返回值的问题。
return后面没有0或1,说明这个函数是void类型的,这类函数本来就不需要有返回值,这里的return的意思并不是要返回某个值,而是退出这个函数的意思。

c语言中,如何在结构体中实现函数的功能?


提供参考:
struct {
int funcid
char *funcname
int (*funcint)() /* 函数指针 int 类型*/
void (*funcvoid)() /* 函数指针 void类型*/

}

把结构体做成和类相似,让他的内部有属性,也有方法
每次都需要初始化,比较麻烦

随便看看