怎么把这个.cpp的文件改成.c的

怎么把这个.cpp的文件改成.c的,第1张

/*改扩展名,还有 minput函数的fp和i 变量申明位置不合适,移到函数开头就行了 */

#include <stdio.h>

#include <string.h>

#define SIZE 100

int num=0

struct member_type

{

char name[10]

int id

int age

char addr[15]

}mem[SIZE]

void minput()

{

FILE *fp /*早期的C编译器必须在函数开头声明变量,把fp和i移到开头*/

int i

char ch

while(1)

{

printf("请输入职员相关信息:\n")

printf("职员ID:")

scanf("%d",&mem[num].id)

printf("\n")

printf("职员姓名:")

scanf("%s",&mem[num].name)

printf("\n")

printf("职员年龄:")

scanf("%d",&mem[num].age)

printf("\n")

printf("职员地址:")

scanf("%s",&mem[num].addr)

printf("\n")

num++

getchar()

printf("是否继续录入职员信息?(Y/N)\n")

ch = getchar()

if (ch =='n' || ch =='N')

{

break

}

}

if ((fp=fopen("member.dat","wb"))==NULL)

{

printf("出错了,无法打开文件!\n")

return

}

if (fwrite(&num,sizeof(int),1,fp)!=1)

{

printf("出错了,无法写入文件!\n")

}

for (i=0i<numi++)

{

if (fwrite(&mem[i],sizeof(struct member_type),1,fp)!=1)

{

printf("出错了,无法写入文件!\n")

}

}

fclose(fp)

}

void moutput()

{

FILE *fp

int i

if ((fp=fopen("member.dat","rb"))==NULL)

{

printf("出错了,无法打开文件!\n")

return

}

if (fread(&num,sizeof(int),1,fp)!=1)

{

num=-1

}

else

{

for(i=0i<numi++)

{

fread(&mem[i],sizeof(struct member_type),1,fp)

printf("%s 的职员ID为 %d 年龄为 %d 地址为 %s\n",mem[i].name,mem[i].id,mem[i].age,mem[i].addr)

}

}

fclose(fp)

}

int main()

{

int xuhao

void minput()

void moutput()

while(1)

{

printf("=========企业职员信息管理程序===========\n")

printf("1,输入职员信息\n")

printf("2,查看已录入职员信息\n")

printf("3,退出本程序\n")

printf("请输入要执行的 *** 作前面的序号:")

scanf("%d",&xuhao)

switch(xuhao)

{

case 1:minput()

break

case 2:moutput()

break

case 3:return 0

}

}

return 0

}

首先,得把关于或者涉及C++语法及库调用的地方改为C风格

其次,把文件扩展名改为C.

关键是程序内容.大部分C++程序都可以改为纯C程序.

但少数涉及C++库用法或算法的就有点难了.

最简单的,

比如一个 char *p =new char[10]

这样一句,在C++中,属于动态定义数组char数组.

改为C的话,静态倒好办,改为动态就得用malloc函数了,差得有点远哦....

掌握C++和C的程序员改,估计还行.只懂C和普通懂C++的,估计有点难度.

又比如:

队列的使用 C++中有用 list<string>ls,就是定义了一个内容为string的不定数组ls,而这个,要改为C,真的要做很功夫哦..........


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12191518.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存