`
忧里修斯
  • 浏览: 432379 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

结构体实例

阅读更多
示例1:
#include <stdio.h>
#include <string.h>

int main(int argc,char * argv[]){
        
    struct student{
            
        int no; 
        //char name[20];
        char *name;
        char sex;
    }s={1001,"lilei",'M'};
                                                                                                                                                                                 
    struct student s2;
    struct student *s3;
    s2.no = 1002;
    s2.name = "hanmeimei";
    //strcpy(s2.name,"hanmeimei");
    s2.sex = 'F';
    s3 = &s2;
    printf("The student info is :\nNO:%d\nName:%s\nSex:%c\n",s.no,s.name,s.sex);
    printf("The student info is :\nNO:%d\nName:%s\nSex:%c\n",s2.no,s2.name,s2.sex);
    printf("The student info is :\nNO:%d\nName:%s\nSex:%c\n",s3->no,s3->name,s3->sex);

}


示例2:
/**
  *读写文件示例,使用结构体保存数据
  */
#include <stdio.h>
#include <stdlib.h>

struct VideoData{
	int exposure;
	int color;
	int gray;
};

int writeToFile(struct VideoData *dataSet,char *filepath);
int readFromFile(struct VideoData *dataSet,char *filepath);

/**
  *将结构体以键值对的形式写入文件filepath中
  */
int writeToFile(struct VideoData *dataSet,char *filepath){
	
	FILE *fp;
	if((fp = fopen(filepath,"w+")) == NULL){
		
		printf("open %s error!\n",filepath);
		return -1;
	}
	if(fwrite(dataSet,sizeof(struct VideoData),1,fp) != 1){
		printf("write error!\n");
		return -1;
	}
	fclose(fp);
	return 0;
}
/**
  *从filepath中读取内容
  */
int readFromFile(struct VideoData *dataSave,char *filepath){
	
	FILE *fp;
	if((fp = fopen(filepath,"r")) == NULL){
		
		printf("open %s error!\n",filepath);
		return -1;
	}
	if(fread(dataSave,sizeof(struct VideoData),1,fp) != 1){
		printf("read error!\n");
		return -1;
	}
	fclose(fp);
	return 0;
}

int main(int argc,char argv[]){

	struct VideoData dataSet;
	struct VideoData *datap;
	datap = &dataSet;
	printf("请输入3个整数,以空格隔开:\n");
	scanf("%d %d %d",&dataSet.exposure,&dataSet.color,&dataSet.gray);
	printf("请输入写入文件的绝对路径:\n");
	char *filepath = malloc(128);
	scanf("%s",filepath);
	//写入数据
	writeToFile(datap,filepath);
	//读出来
	struct VideoData readData;
	struct VideoData *readp;
	readp = &readData;
	readFromFile(readp,filepath);
	printf("exposure=%d\ncolor=%d\ngray=%d\n",(*readp).exposure,(*readp).color,(*readp).gray);
	exit(0);
}
分享到:
评论

相关推荐

    java Udp 收发结构体实例 Socket编程

    Java UDP(用户数据报协议)收发结构体实例与Socket编程是网络通信中的重要主题,尤其是在需要高效、无连接的数据传输场景下。UDP是一种无连接的传输层协议,相较于TCP,它提供了更低的延迟和更高的吞吐量,但不保证...

    c语言结构体实例

    这些实例展示了结构体在C语言中的基本用法,包括如何定义结构体、如何声明结构体变量、如何通过指针访问和修改结构体成员,以及如何处理嵌套结构体。结构体在实际编程中有着广泛的应用,如数据记录、文件操作、图形...

    linux 下 gsoap 用webservice 通信

    本篇将详细介绍如何使用gSOAP在Linux下通过Web Service进行通信,特别是涉及结构体的实例。 首先,了解gSOAP的基本概念。gSOAP自动生成客户端和服务器的绑定代码,简化了SOAP消息的处理。它提供了XML数据绑定和类型...

    C++结构体实例和类实例的初始化

    结构体实例(包括共用体)和类实例的初始化方法完全相同,二者都可以应用于继承层次中。不同点是结构体(包括共用体)默认成员为public,而类默认成员是private型的。  一、若类和结构体所有数据成员均为public型...

    结构体的格式,实例。

    该函数用于读取学生的各项信息,并返回一个`student`结构体实例。通过`scanf()`函数逐个读取成员变量的值。 #### 2. `printst()` 用于打印学生信息。接受一个`student`结构体实例作为参数,并使用`printf()`函数...

    C#中使用反射获取结构体实例及思路

    例如,我们可以使用`Activator.CreateInstance()`来创建结构体实例: ```csharp using System; struct MyStruct {} static void Main(string[] args) { Type type = typeof(MyStruct); object obj2 = Activator...

    通过为结构体赋值的方法直接写位图

    本程序要构造的位图为24位bmp格式,通过直接为结构体BITMAPFILEHEADER和BITMAPINFOHEADER赋值的方式生成。本程序演示的功能比较片面,但也比较实用。如果面对大量的数据,特别是二维的数组,可以尝试将它们写成图像...

    C语言结构体实例

    根据提供的文件信息,本文将详细解释C语言中的结构体概念,并通过具体的代码示例来解析如何使用结构体实现数组操作。 ### C语言结构体概念 #### 结构体定义与使用 在C语言中,结构体(`struct`)是一种用户自定义...

    C语言 结构体和指针详解及简单示例

    在C语言中,结构体(struct)是一种复合数据类型,允许我们将多个不同类型的数据组合成一个单一的实体。结构体常用于表示复杂的数据结构,如学生信息、员工记录等。指针则是C语言中的一种特殊变量,它存储的是另一个...

    C语言指针和结构体编程实例.zip

    创建结构体实例并访问其成员的方法如下: ```c struct MyStruct person; person.age = 25; strcpy(person.name, "John Doe"); person.height = 1.83; ``` 结构体与指针的结合是C语言中的强大力量。我们可以创建...

    结构体使用详解,与结构体如何嵌套使用

    我们还可以一次声明多个结构体实例。例如,声明两个 `CC` 类型的结构体变量 `x1` 和 `x2`: ```c struct CC { int a; int b; } x1, x2; ``` 这里也可以使用 `typedef` 来简化结构体类型的声明: ```c typedef ...

    C++结构体简单例子

    在C++编程语言中,结构体(Struct)是一种复合数据类型,它允许我们将多个不同类型的变量组合成一个单一的实体。这种数据结构在处理多个相关数据时非常有用,例如定义一个人的信息,可以包含姓名、年龄、性别等。...

    OPCUA读写结构体示例

    7. **写入结构体**:创建一个结构体实例,填充其成员,然后使用客户端的Write方法将其写入服务器。确保正确处理任何可能的异步操作和错误处理。 8. **异常处理**:在读写过程中,一定要处理可能出现的异常,如网络...

    结构体问题

    我们可以使用构造函数或者大括号初始化列表来初始化结构体实例: ```cpp Student stu1 = {"张三", 18, 92.5f}; // 使用构造函数 Student stu2 = {name: "李四", age: 20, score: 88.0f}; // 使用大括号初始化列表...

    开辟空间存放结构体变量.zip_开辟空间存放结构体变量

    "开辟空间存放结构体变量"这个主题是C++初学者经常遇到的一个概念,主要涉及到内存管理和结构体实例化。下面我们将详细探讨这个知识点。 首先,了解结构体的基本定义和声明。在C++中,我们可以定义一个结构体类型,...

    WIN32 API结构体详解

    一些API函数,如EnumFonts或EnumChildWindows,允许开发者通过自定义的回调函数(如FONTENUMPROC、WNDENUMPROC)来遍历和处理一系列的结构体实例。回调函数通常接收一个结构体指针,根据其内容进行相应的处理。 ...

    C语言程序(结构体)

    为了创建结构体实例,我们需要使用 `struct` 关键字和结构体标签来声明变量,如下所示: ```c struct Student s1; // 声明一个名为s1的Student结构体变量 ``` 初始化结构体可以通过两种方式:在声明时或者声明后。...

    xpack代码,用于结构体和xml/json之间的转换

    通过`xpack`,我们可以方便地将结构体实例转化为XML或JSON字符串,便于数据传输和存储。 接着是XML(eXtensible Markup Language),它是一种用于标记数据的语言,广泛用于Web服务、配置文件和数据交换。XML的结构...

    结构体嵌套(c语言)

    在VC++6.0这样的开发环境中,你可以编写和编译包含嵌套结构体的C语言程序,进行各种操作,如创建结构体实例、初始化、访问和修改结构体成员等。这有助于理解和掌握嵌入式系统中复杂数据结构的使用。 总结来说,...

    Swift语言教程:Swift 结构体教程

    接着,我们创建了两个结构体实例 `aStruct` 和 `bStruct`,它们都指向相同的初始值,但当我们修改 `bStruct` 的值时,`aStruct` 的值并没有受到影响。这是因为结构体是值类型,复制时实际上是复制了整个结构体的值。...

Global site tag (gtag.js) - Google Analytics