- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可以在元素周期表中添加新元素,并将其添加到文件中。但问题是,当我下次编译后搜索新插入的元素时,但它说找不到特定元素在一个文件中。为什么elememt没有永久添加到文件中?
#include<stdio.h>
#include<conio.h>
#include<string.h>
typedef struct element
{
char nm[15];
char sym[3];
char blk[15];
int atmno;
float mass;
char cat[18];
}el;
FILE *fp;
int i,tot=45;
el e[80];
void home();
void search();
void add();
int main()
{
int i;
fp=fopen("per.txt","w");
if(fp==NULL)
{
printf("\nerror opening file");
return 0;
}
//1st element
strcpy(e[0].nm,"Hydrogen");
strcpy(e[0].blk,"Not Specified");
strcpy(e[0].sym,"H");
e[0].atmno=1;
e[0].mass=2;
strcpy(e[0].cat,"Non Metal");
//2nd element
strcpy(e[1].nm,"Lithium");
strcpy(e[1].blk,"s");
strcpy(e[1].sym,"Li");
e[1].atmno=3;
e[1].mass=6.94;
strcpy(e[1].cat,"Metal");
//3rd element
strcpy(e[2].nm,"Berillium");
strcpy(e[2].blk,"s");
strcpy(e[2].sym,"Be");
e[2].atmno=4;
e[2].mass=9.02;
strcpy(e[2].cat,"Metal");
//4th element
strcpy(e[3].nm,"Sodium");
strcpy(e[3].blk,"s");
strcpy(e[3].sym,"Na");
e[3].atmno=11;
e[3].mass=22.99;
strcpy(e[3].cat,"Metal");
//5th elemnt
strcpy(e[4].nm,"Magnesium");
strcpy(e[4].blk,"s");
strcpy(e[4].sym,"Mg");
e[4].atmno=12;
e[4].mass=24.31;
strcpy(e[4].cat,"Metal");
//6th element
strcpy(e[5].nm,"Potassium");
strcpy(e[5].blk,"s");
strcpy(e[5].sym,"K");
e[5].atmno=19;
e[5].mass=39.10;
strcpy(e[5].cat,"Non Metal");
//7th element
strcpy(e[6].nm,"Calcium");
strcpy(e[6].blk,"s");
strcpy(e[6].sym,"Ca");
e[6].atmno=20;
e[6].mass=40.08;
strcpy(e[6].cat,"Metal");
//8th elment
strcpy(e[7].nm,"Rubidium");
strcpy(e[7].blk,"s");
strcpy(e[7].sym,"Rb");
e[7].atmno=37;
e[7].mass=85.47;
strcpy(e[7].cat,"Metal");
//9th element
strcpy(e[8].nm,"Strontium");
strcpy(e[8].blk,"s");
strcpy(e[8].sym,"Sr");
e[8].atmno=38;
e[8].mass=87.62;
strcpy(e[8].cat,"Metal");
//10th element
strcpy(e[9].nm,"Scandium");
strcpy(e[9].blk,"d");
strcpy(e[9].sym,"Sc");
e[9].atmno=21;
e[9].mass=44.96;
strcpy(e[9].cat,"Metal");
//11th element
strcpy(e[10].nm,"Titanium");
strcpy(e[10].blk,"d");
strcpy(e[10].sym,"Ti");
e[10].atmno=22;
e[10].mass=47.88;
strcpy(e[10].cat,"Metal");
//12th element
strcpy(e[11].nm,"Vanadium");
strcpy(e[11].blk,"d");
strcpy(e[11].sym,"V");
e[11].atmno=23;
e[11].mass=50.94;
strcpy(e[11].cat,"Metal");
//13th element
strcpy(e[12].nm,"Chromium");
strcpy(e[12].blk,"d");
strcpy(e[12].sym,"Cr");
e[12].atmno=24;
e[12].mass=52;
strcpy(e[12].cat,"Metal");
//14th element
strcpy(e[13].nm,"Mangnese");
strcpy(e[13].blk,"d");
strcpy(e[13].sym,"Mn");
e[13].atmno=25;
e[13].mass=54.64;
strcpy(e[13].cat,"Metal");
//15th element
strcpy(e[14].nm,"Iron");
strcpy(e[14].blk,"d");
strcpy(e[14].sym,"Fe");
e[14].atmno=26;
e[14].mass=56.08;
strcpy(e[14].cat,"Metal");
//16th element
strcpy(e[15].nm,"Cobalt");
strcpy(e[15].blk,"d");
strcpy(e[15].sym,"Co");
e[15].atmno=27;
e[15].mass=58.93;
strcpy(e[15].cat,"Metal");
//17th element
strcpy(e[16].nm,"Nickel");
strcpy(e[16].blk,"d");
strcpy(e[16].sym,"Ni");
e[16].atmno=28;
e[16].mass=58.69;
strcpy(e[16].cat,"Metal");
//18th element
strcpy(e[17].nm,"Copper");
strcpy(e[17].blk,"d");
strcpy(e[17].sym,"Cu");
e[17].atmno=29;
e[17].mass=63.55;
strcpy(e[17].cat,"Metal");
//19th element
strcpy(e[18].nm,"Zinc");
strcpy(e[18].blk,"d");
strcpy(e[18].sym,"Zn");
e[18].atmno=30;
e[18].mass=65.39;
strcpy(e[18].cat,"Metal");
//20th element
strcpy(e[19].nm,"Palladium");
strcpy(e[19].blk,"d");
strcpy(e[19].sym,"Pd");
e[19].atmno=46;
e[19].mass=106.44;
strcpy(e[19].cat,"Metal");
//21th element
strcpy(e[20].nm,"Silver");
strcpy(e[20].blk,"d");
strcpy(e[20].sym,"Ag");
e[20].atmno=47;
e[20].mass=107.9;
strcpy(e[20].cat,"Metal");
//22nd element
strcpy(e[21].nm,"Cadmium");
strcpy(e[21].blk,"d");
strcpy(e[21].sym,"Cd");
e[21].atmno=48;
e[21].mass=112.4;
strcpy(e[21].cat,"Metal");
//23rd element
strcpy(e[22].nm,"Lanthanium");
strcpy(e[22].blk,"d");
strcpy(e[22].sym,"La");
e[22].atmno=57;
e[22].mass=138.9;
strcpy(e[22].cat,"Metal");
//24th element
strcpy(e[23].nm,"Boron");
strcpy(e[23].blk,"p");
strcpy(e[23].sym,"B");
e[23].atmno=5;
e[23].mass=10.81;
strcpy(e[23].cat,"Metalliod");
//25th element
strcpy(e[24].nm,"Carbon");
strcpy(e[24].blk,"p");
strcpy(e[24].sym,"C");
e[24].atmno=6;
e[24].mass=12.01;
strcpy(e[24].cat,"Non Metal");
//26th element
strcpy(e[25].nm,"Nitrogen");
strcpy(e[25].blk,"p");
strcpy(e[25].sym,"N");
e[25].atmno=7;
e[25].mass=14.01;
strcpy(e[25].cat,"Non Metal");
//27th element
strcpy(e[26].nm,"Oxygen");
strcpy(e[26].blk,"p");
strcpy(e[26].sym,"O");
e[26].atmno=8;
e[26].mass=16;
strcpy(e[26].cat,"Non Metal");
//28th element
strcpy(e[27].nm,"Flourine");
strcpy(e[27].blk,"p");
strcpy(e[27].sym,"F");
e[27].atmno=9;
e[27].mass=19;
strcpy(e[27].cat,"Non Metal");
//29th element
strcpy(e[28].nm,"Neon");
strcpy(e[28].blk,"p");
strcpy(e[28].sym,"Ne");
e[28].atmno=10;
e[28].mass=20.18;
strcpy(e[28].cat,"Non Metal");
//30th element
strcpy(e[29].nm,"Aluminium");
strcpy(e[29].blk,"p");
strcpy(e[29].sym,"Al");
e[29].atmno=13;
e[29].mass=26.98;
strcpy(e[29].cat,"Metal");
//31st element
strcpy(e[30].nm,"Silicon");
strcpy(e[30].blk,"p");
strcpy(e[30].sym,"Si");
e[30].atmno=14;
e[30].mass=28.09;
strcpy(e[30].cat,"Metalloid");
//32nd element
strcpy(e[31].nm,"Phosphorous");
strcpy(e[31].blk,"p");
strcpy(e[31].sym,"P");
e[31].atmno=15;
e[31].mass=30.97;
strcpy(e[31].cat,"Non Metal");
//33rd element
strcpy(e[32].nm,"Sulphur");
strcpy(e[32].blk,"p");
strcpy(e[32].sym,"S");
e[32].atmno=16;
e[32].mass=32.06;
strcpy(e[32].cat,"Non Metal");
//34th element
strcpy(e[33].nm,"Chlorine");
strcpy(e[33].blk,"p");
strcpy(e[33].sym,"Cl");
e[33].atmno=17;
e[33].mass=35.45;
strcpy(e[33].cat,"non Metal");
//35th element
strcpy(e[34].nm,"Argon");
strcpy(e[34].blk,"p");
strcpy(e[34].sym,"Ar");
e[34].atmno=18;
e[34].mass=39.95;
strcpy(e[34].cat,"Non Metal");
//36th element
strcpy(e[35].nm,"Gallium");
strcpy(e[35].blk,"p");
strcpy(e[35].sym,"Ga");
e[35].atmno=31;
e[35].mass=69.72;
strcpy(e[35].cat,"Metal");
//37th element
strcpy(e[36].nm,"Germanium");
strcpy(e[36].blk,"p");
strcpy(e[36].sym,"Ge");
e[36].atmno=32;
e[36].mass=72.64;
strcpy(e[36].cat,"Metalloid");
//38th element
strcpy(e[37].nm,"Arsenic");
strcpy(e[37].blk,"p");
strcpy(e[37].sym,"As");
e[37].atmno=33;
e[37].mass=74.92;
strcpy(e[37].cat,"Metalloid");
//39th element
strcpy(e[38].nm,"Selenium");
strcpy(e[38].blk,"p");
strcpy(e[38].sym,"Se");
e[38].atmno=34;
e[38].mass=78.96;
strcpy(e[38].cat,"Non Metal");
//40th element
strcpy(e[39].nm,"Bromin");
strcpy(e[39].blk,"p");
strcpy(e[39].sym,"Br");
e[39].atmno=35;
e[39].mass=79.90;
strcpy(e[39].cat,"Non Metal");
//41st element
strcpy(e[40].nm,"Krypton");
strcpy(e[40].blk,"p");
strcpy(e[40].sym,"Kr");
e[40].atmno=36;
e[40].mass=83.79;
strcpy(e[40].cat,"Non Metal");
//42nd element
strcpy(e[41].nm,"Cerium");
strcpy(e[41].blk,"f");
strcpy(e[41].sym,"Ce");
e[41].atmno=88;
e[41].mass=140.10;
strcpy(e[41].cat,"Metal");
//43rd element
strcpy(e[42].nm,"Thorium");
strcpy(e[42].blk,"f");
strcpy(e[42].sym,"Th");
e[42].atmno=90;
e[42].mass=232;
strcpy(e[42].cat,"Metal");
//44th element
strcpy(e[43].nm,"Uranium");
strcpy(e[43].blk,"f");
strcpy(e[43].sym,"U");
e[43].atmno=92;
e[43].mass=238;
strcpy(e[43].cat,"Metal");
//45th element
strcpy(e[44].nm,"Plutonium");
strcpy(e[44].blk,"f");
strcpy(e[44].sym,"Pu");
e[44].atmno=94;
e[44].mass=244;
strcpy(e[44].cat,"Metal");
for(i=0;i<45;i++)
{
fprintf(fp,"%s %s %s %d %f %s",e[i].nm,e[i].sym,e[i].blk,e[i].atmno,e[i].mass,e[i].cat);
}
fclose(fp);
home();
return 0;
}
void home()
{
int opt;
printf("\n\t\t***********************PERIODIC TABLE***********************");
printf("\n\n\n1.SEARCH ELEMENT\n\n2.ADD ELEMENT\n\n3.EXIT\n\nEnter Your Choice:");
scanf("%d",&opt);
if(opt<1||opt>3)
{
printf("\nInvalid Choice\nEnter Valid Choice:");
scanf("%d",&opt);
}
switch(opt)
{
case 1:
search();
break;
case 2:
add();
break;
case 3:
return ;
}
}
//here it searches for a particular element in a file
void search()
{
int i,j,cho,on,flg=0;
char mn[50];
float wt;
printf("\n1.By Name\n\n2.By Atomic No\n\n3.By Atomic Mass\n\n4.Back to Homescreen\n\nEnter Your Choice:");
scanf("%d",&cho);
if(cho<1||cho>4)
{
printf("\nInvalid Choice\nEnter Correct Choice between 1&4:");
scanf("%d",&cho);
}
switch(cho)
{
case 1:
printf("\nEnter Name Of Element:\n\t\t");
scanf("%s",mn);
for(j=0;mn[j]!='\0';j++)
{
if(j==0&&(mn[j]<=122&&mn[j]>=97))
mn[j]-=32;
else
{
if(j!=0&&(mn[j]>=65&&mn[j]<=90))
mn[j]+=32;
else
break;
}
}
for(i=0;i<tot;i++)
{
if(strcmp(mn,e[i].nm)==0)
{
flg=1;
printf("\nName:%s \nSymbol:%s \nBlock:%s \nAtomic No:%d \nAtomic Mass:%f \nCategory:%s",e[i].nm,e[i].sym,e[i].blk,e[i].atmno,e[i].mass,e[i].cat);
}
else
{
if(flg==0&&i==tot-1)
printf("\nNot found");
}
}
home();
break;
case 2:
printf("\nEnter Atomic No:");
scanf("%d",&on);
for(i=0;i<tot;i++)
{
if(on==e[i].atmno)
{
flg=1;
printf("\nName:%s \nSymbol:%s \nBlock:%s \nAtomic No:%d \nAtomic Mass:%f \nCategory:%s",e[i].nm,e[i].sym,e[i].blk,e[i].atmno,e[i].mass,e[i].cat);
}
else
{
if(flg==0&&i==tot-1)
printf("\nNot found");
}
}
home();
break;
case 3:
printf("\nEnter Exact Atomic Mass upto 2 decimal places:");
scanf("%f",&wt);
for(i=0;i<tot;i++)
{
if(wt==e[i].mass)
{
flg=1;
printf("\nName:%s \nSymbol:%s \nBlock:%s \nAtomic No:%d \nAtomic Mass:%f \nCategory:%s",e[i].nm,e[i].sym,e[i].blk,e[i].atmno,e[i].mass,e[i].cat);
}
else
{
if(flg==0&&i==tot-1)
printf("\nNot found");
}
}
home();
break;
case 4:
home();
}
}
//Here, is the add function which adds the element in a file
void add()
{
int n,j;
FILE *fp1;
fp1=fopen("per.txt","a");
if(fp1==NULL)
{
printf("\nFailed to open");
}
else
{
printf("\nEnter Number of Elements You Want to Add:");
scanf("%d",&n);
for(i=tot;i<tot+n;i++)
{
printf("\nName of element:\n\t\t");
scanf("%s",e[i].nm);
for(j=0;e[i].nm[j]!='\0';j++)
{
if(j==0&&(e[i].nm[j]<=122&&e[i].nm[j]>=97))
e[i].nm[j]-=32;
else
{
if(j!=0&&(e[i].nm[j]>=65&&e[i].nm[j]<=90))
e[i].nm[j]+=32;
else
break;
}
}
printf("\nSymbol:\n");
scanf("%s",e[i].sym);
printf("\nBlock:\n");
scanf("%s",e[i].blk);
printf("\nAtomic No:\n");
scanf("%d",&e[i].atmno);
printf("\nAtomic Weight:\n");
scanf("%f",&e[i].mass);
printf("\nType of Element:\n");
scanf("%s",e[i].cat);
fprintf(fp1,"%s %s %s %d %f %s",e[i].nm,e[i].sym,e[i].blk,e[i].atmno,e[i].mass,e[i].cat);
}
}
tot+=n;
fclose(fp1);
home();
return ;
}
最佳答案
您从未阅读过该文件。当程序启动时,初始化数组并写入文件。添加元素时,您将添加到数组并添加到文件。但旧数据永远不会被检索。
您应该先尝试打开该文件,如果该文件不存在,则写入初始化数据。如果文件有,则不写入初始化数据,直接读取文件,初始化元素数组。
更改写入格式,使数据之间以逗号分隔,这样以后读取数据会更方便。每行应以 "\n"
char filename[] = "per.txt";
int main()
{
int i;
FILE *fin = fopen(filename, "r");
if(fin == NULL)
{
FILE *fout = fopen(filename, "w");
if(fout)
{
if(fout == NULL)
{
printf("cannot read/write...\n");
return 0;
}
el x[] =
{
{ "Hydrogen", "H", "ns", 1, 2, "Non Metal" },
{ "Lithium", "Li", "s", 3, 6.94f, "Metal" },
{ "Berillium", "Li", "s", 4, 9.02f, "Metal" },
{ "Sodium", "Na", "s", 11, 22.99f, "Metal" },
};
for(i = 0; i < 4; i++)
fprintf(fout, "%s, %s, %s, %d, %f, %s\n",
x[i].nm, x[i].sym, x[i].blk, x[i].atmno, x[i].mass, x[i].cat);
}
fclose(fout);
fin = fopen(filename, "r");
}
if(fin == NULL)
{
printf("cannot read...\n");
return 0;
}
tot = 0;
while(fscanf(fin, "%[^,], %[^,], %[^,],%d,%f, %[^\n]\n",
e[tot].nm, e[tot].sym, e[tot].blk, &e[tot].atmno, &e[tot].mass, e[tot].cat) == 6)
{
tot++;
}
home();
return 0;
}
void add()
{
...
fprintf(fp1, "%s, %s, %s, %d, %f, %s\n",
e[i].nm, e[i].sym, e[i].blk, e[i].atmno, e[i].mass, e[i].cat);
...
tot += n;
fclose(fp1);
home();
return;
}
关于c - 为什么每次我再次编译程序时都需要在文件中添加相同的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51341869/
在开发中的网页上,我在 IE 上遇到此错误 element = $(element); 此代码位于prototype.js 预期对象 如何消除此错误。 更新: 现场也使用了 jQuery。 最佳答
我有两个大小相同的嵌套数组: Array1 =[[1, 2], [], [2, 3]] Array2= [[1, 4], [8, 11], [3, 6]] 我需要将它们合并到一个数组中,如下所示: A
我有一些 jQuery 代码,当单击具有特定 ID 的项目时运行。当 ID 是 的一部分时,它就可以工作。元素,但当它位于 中时则不然元素。为什么会这样呢?我想使用 an,因为如果用户关闭了 Ja
Flex-box 规范 3声明 flex 元素不是 block 容器: A flex item establishes a new formatting context for its content
我遇到了一个意想不到的问题。 HTML JS $(function() { var $divs = $('.myDiv'); // create new div not in
我使用 Bootstrap 和 Ember.js 得到了一个无序列表。每个列表项都是一个显示新帖子的链接,每当您单击该链接时,Ember 都会添加类 active默认情况下。我正在使用 Bootstr
我正在尝试让一个函数正常工作,但运气不佳,所以我想向 Stackoverflow 智囊团提出一个新手问题! 基本上,我有一个表单,并且循环遍历所有元素以查看是否存在自定义数据属性。如果存在,则保持该元
我想映射一个可选数组,删除那些 nil 值,并使用另一个函数映射非 nil 值。 我知道我可以通过使用 compactMap 然后使用常规 map 来实现这一点,但我只想遍历数组一次。 我为此实现了一
我如何定位 li 元素,除非它们出现在 之后元素?换句话说,我想针对步骤而不是注释。 我尝试向 OL 添加一个我想从选择中排除的类,但我想出的代码不起作用。 (顺便说一句,重构 html 不是一种选
Warning 1 The element 'system.webServer' has invalid child element 'rewrite'. List of possible eleme
我正在尝试编写一个脚本,该脚本将遍历 HTML 源并创建 DOM 的 JSON 文件,然后使用 d3.js 在 TreeView 中显示该文件。我遇到的问题是不仅希望显示元素(TITLE、P、LI 等
我有以下 HTML 表单:- Option 1 Option 2
我试图在选定的 HTML 元素之后选择下一个具有类名 slider-value 的 span 元素。我尝试了多种解决方案,但没有一个有效。 我可以通过 id 选择它,但我不希望那样做使代码冗余。 $(
如果电子邮件地址无效,我想在屏幕上显示一条消息“请输入有效的电子邮件地址”。 body 元素的innerHTML 语句工作正常,但我用于p 元素的innerHTML 语句不起作用。 有一次,当我测试它
以下 jQuery 代码调用 ul 元素,查找元素内的前 三个 li 列表项,并隐藏剩余的 li 项目。然后,它附加一个 li 元素,其中显示“显示更多...”,并且在单击时显示之前隐藏的列表项。 (
我问了a question早些时候关于将编辑/删除链接与 h1 元素内联的最佳方法。我能够通过给出的答案实现这一点,但我现在有额外的要求,我需要在 h1 下方显示一个段落并编辑/删除链接。 到目前为止
我使用 MVC 4 和 knockout.js 库版本 2.1.0 显示从服务器检索到的大量文件的表中的以下摘录。 0)"> 正在正确检索数据,
我创建了一个脚本,该脚本在鼠标悬停在父容器上时激活,并且应该将其子元素移离鼠标。我目前已经让它工作了,但是代码的某些部分似乎与 REACT 代码应该是什么样子相矛盾。特别是两个部分。 我在渲染函数中使
我是 JS 新手,正在尝试理解项目 https://github.com/tastejs/todomvc 的代码 请参阅屏幕截图,我尝试对 button X 以及其父元素 div 设置断点,但在这两种
例如,假设有一个带有奇特颜色的标记: Something written here 使用 Visual Studio 2017 和 MVC 5 元素,有没有办法检查和定位当前应用了哪些样式,以及负责它
我是一名优秀的程序员,十分优秀!