首页 电脑教程 电脑知识 C语言如何将文件的数据赋值给结构体的变量

C语言如何将文件的数据赋值给结构体的变量

Jan 12, 2024 pm 03:27 PM

C语言如何将文件的数据赋值给结构体的变量

/*给出的sex[2]好像装不下4个字母。。。。。。不过题意明白了。

**为了简化编程,我把结构体里的数据都改成字符数组了,如果需要数字的话,再加一步转换**就好了,比较简单就不写了,另外程序中用了个结构体数组,如果不能确定文件中到底有多**少行,为了节约内存,可以用动态分配的方式。编写得比较仓促,也没封装函数,不过确实**可用,将就着看吧~~~

*/

#include <...>

struct employ

{

char id[10];

char name[10];

char sex[5];

char age[5];

char edu[10];

char wage[5];

char address[20];

char number[20];

};

int _tmain(int argc, _TCHAR* argv[])

{

char buf[100];

FILE* pf=NULL;

struct employ Ep[10]={};

int flag=0;

pf=fopen("employ.dat","r");

if(!pf)

{

printf("文件打开失败!n");

system("pause");

return -1;

}

while(fgets(buf,99,pf))

{

char* pchar=buf;

for(int i=0;i

{

Ep[flag].id[i]=*pchar;

if(*pchar++==',')

break;

}

for(int i=0;i

{

Ep[flag].name[i]=*pchar;

if(*pchar++==',')

break;

}

for(int i=0;i

{

Ep[flag].sex[i]=*pchar;

if(*pchar++==',')

break;

}

for(int i=0;i

{

Ep[flag].age[i]=*pchar;

if(*pchar++==',')

break;

}

for(int i=0;i

{

Ep[flag].edu[i]=*pchar;

if(*pchar++==',')

break;

}

for(int i=0;i

{

Ep[flag].wage[i]=*pchar;

if(*pchar++==',')

break;

}

for(int i=0;i

{

Ep[flag].address[i]=*pchar;

if(*pchar++==',')

break;

}

for(int i=0;i

{

Ep[flag].number[i]=*pchar;

if(!*pchar++)

break;

}

//printf("%s",buf);

++flag;

}

fclose(pf);

system("pause");

return 0;

}

c语言中如何使用txt文件中的数据变量

使用fopen,fscanf函数可以实现从txt文件当中读取内容,进行简单操作。

1.fopen的函数原型:FILE * fopen(const char * path,const char * mode);

fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:

r 以只读方式打开文件,该文件必须存在。

r+ 以可读写方式打开文件,该文件必须存在。

rb+ 读写打开一个二进制文件,允许读数据。

rw+ 读写打开一个文本文件,允许读和写。

w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。

w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)

a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)

wb 只写打开或新建一个二进制文件;只允许写数据。

wb+ 读写打开或建立一个二进制文件,允许读和写。

wt+ 读写打开或着建立一个文本文件;允许读写。

at+ 读写打开一个文本文件,允许读或在文本末追加数据。

ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。

上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。

返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。

2.例程:

1

2

3

4

5

6

7

8

9

10

11

12

#include

#define F_PATH "d:\myfile\file.dat"

charc;

intmain(){

FILE*fp=NULL;//需要注意

fp=fopen(F_PATH,"r");

if(NULL==fp) return-1;//要返回错误代码

while(fscanf(fp,"%c",&c)!=EOF) printf("%c",c); //从文本中读入并在控制台打印出来

fclose(fp);

fp=NULL;//需要指向空,否则会指向原打开文件地址

return0;

}

C语音如何读取txt文件中的某一行并赋值给变量

最简单的方法,就是一行一行的读,但只取你要的那一行数据就行了。下面是我写的一个简单的例子,抽了三次奖,没有判重复的。

#include

#include

#include

#define PEOPLE_NUM 10 //我的文件里有10个名字

void get_prize(FILE* fp, char prize_name[])

{

int num;

int i;

fseek(fp, 0, SEEK_SET);

printf("start...n");

num = rand() % PEOPLE_NUM + 1;

for(i = 0; i

{

fgets(prize_name, 32, fp);

}

printf("%s get the prize!!!n", prize_name);

}

int main()

{

FILE* fp = fopen("name.txt", "r");

int prize_num;

int i;

char prize_name[32] = {0};

srand(time(0));

for(i = 0; i

{

printf("n");

get_prize(fp, prize_name);

}

fclose(fp);

return 0;

}文件是这个样子:

C语言如何将文件的数据赋值给结构体的变量

运行截图:

C语言如何将文件的数据赋值给结构体的变量

写这种程序你存名字的文件一定要排整齐,这样程序才好处理。祝好运。

以上是C语言如何将文件的数据赋值给结构体的变量的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何求解Windows错误代码' Invalid_data_access_trap” (0x00000004) 如何求解Windows错误代码' Invalid_data_access_trap” (0x00000004) Mar 11, 2025 am 11:26 AM

本文介绍了Windows“ Invalid_data_access_trap”(0x00000004)错误,一个关键的BSOD。 它探讨了常见原因,例如故障驱动程序,硬件故障(RAM,硬盘驱动器),软件冲突,超频和恶意软件。 特鲁

如何编辑注册表? (警告:谨慎使用!) 如何编辑注册表? (警告:谨慎使用!) Mar 21, 2025 pm 07:46 PM

文章讨论了编辑Windows注册表,预防措施,备份方法以及不正确的编辑中的潜在问题。主要问题:系统不稳定和数据丢失的风险不当变化。

如何管理Windows的服务? 如何管理Windows的服务? Mar 21, 2025 pm 07:52 PM

文章讨论了管理系统健康的Windows服务,包括启动,停止,重新启动服务以及稳定性的最佳实践。

发现如何在Windows设置中修复驱动健康警告 发现如何在Windows设置中修复驱动健康警告 Mar 19, 2025 am 11:10 AM

Windows设置中的驱动器健康警告是什么意思?收到磁盘警告时该怎么办?阅读本php.cn教程以获取逐步说明以应对这种情况。

哪个应用程序使用ene.sys 哪个应用程序使用ene.sys Mar 12, 2025 pm 01:25 PM

本文将ene.sys视为Realtek高清音频驱动程序组件。 它详细介绍了其在管理音频硬件方面的功能,并强调了其在音频功能中的关键作用。 该文章还指导用户验证其合法性

为什么驱动器aSio.sys不加载 为什么驱动器aSio.sys不加载 Mar 10, 2025 pm 07:58 PM

本文介绍了Windows asio.sys音频驱动程序的故障。 常见原因包括损坏的系统文件,硬件/驱动程序不兼容,软件冲突,注册表问题和恶意软件。故障排除涉及SFC扫描,驱动程序UPDA

如何使用组策略编辑器(gpedit.msc)? 如何使用组策略编辑器(gpedit.msc)? Mar 21, 2025 pm 07:48 PM

本文介绍了如何在Windows中使用组策略编辑器(GPEDIT.MSC)来管理系统设置,突出显示常见的配置和故障排除方法。它指出gpedit.msc在Windows Home Edition中不可用,建议

如何更改文件类型的默认应用程序? 如何更改文件类型的默认应用程序? Mar 21, 2025 pm 07:48 PM

文章讨论了更改Windows上文件类型的默认应用程序,包括恢复和批量更改。主要问题:没有内置散装更改选项。

See all articles