小白学前端03

上午的小插曲试着把昨天的那个c语言问题解一下:

 1 #include<stdio.h>
 2 void writeToFile(int variable);
 3 void showVariableResult(void);
 4 int main(){
 5   int i=0;
 6   for(;i<100;i++){
 7     i=i*2;
 8     writeToFile(i);
 9   }
10   showVariableResult();
11   return 0;
12 }
13 
14 //只对数值产生作用,要对其他,修改形参和fprintf里面的格式即可
15 void writeToFile(int variable){
16   FILE *input = fopen("E:\Beginning_JavaScript\cSimple\1.txt","a+");
17   if(input== NULL) {return ;}
18   fprintf(input, ">>>%d
",variable);
19   fclose(input);
20 }
21 void showVariableResult(){
22    char ch;
23     FILE *output;
24     output = fopen( "E:\Beginning_JavaScript\cSimple\1.txt", "r" );
25     ch = getc(output);
26     while( ch != EOF ) {
27       printf( "%c", ch );
28       ch = getc(output);
29     }
30     fclose(output);
31 }

/*
目前以上的是没有问题的,但有一些疑问:c语言整形数据怎么读取进文件,以及把整形数据读进文件后,怎么读出来?
目前的解决方法:是读入用fprintf指定%d写入,读出用char读出,发现这样是可行的!

网上的一些回答:
c语言将整形数据存取到文件主要采用两种方法:1.二进制读取,2.字符方式读取:
1.fwrite()和fread()
eg:int num=12345; FILE *fp=fopen("datafile","wb"); fwrite(&num,sizeof(int),1,fp);
...
FILE *fp = fopen("datafile","rb"); fread(&num,sizeof(int),1,fp);

2.fprintf和fscanf()
eg: int num=0; FILE *fp = fopen("datafile","w"); fprintf(fp,"%d ",num);
...
FILE *fp= fopen("datafile","r"); fscanf(fp,"%d",&num);

但不推荐字符方式的原因就是效率太低
*/

/*
由于这次输入文件不仅仅只是数据,还加了一些修饰符,故还是用fprintf更方便一点吧..
*/

 不过真试着来,发现其实就是个打印函数的问题,很简单的实现,先pass

进入正文:(由于这次是白天一边实验一边记录的,故基本没改就直接粘贴过来了...)

/*
由于想到javascript能用node.js进行后端开发,也就是以上的程序肯定也能用js写出来的啊
之前装csslint和jshint时用过nodejs里的npm安装,故大概知道一下:
首先进命令行:敲node -v即可看到版本号也即严重是否正确安装了(不需要再手动加入到PATH变量里面,方便了很多),
接着直接敲node即可进入nodejs的命令行界面直接输js即可,退出按ctrl+c即可
后来一想之前都在sublime text3上安装了gcc,nodejs肯定会有嘛:
在安装好了nodejs之后,同样点tools->Bulid System->new bulid system 输入
{
  "shell_cmd": "node $file",
  "selector":"source.js"
}
即可,是从SegmentFault(也类似于stackoverflow的问答网站)上看来的,故提一下,
值得注意的一点是:在Tools不要再去设置bulid sysytem->node,直接按automatic默认的就好,这样就可以按ctrl+shift+b来选择相应的编译器了,
在例如我这样既装了node又装了gcc的情况下,若不选自动的话,会出现一不小心用node编译了c文件的情况
*/

/*
截图问题:
一开始用截屏键+画图来截,后来用ps的切片工具,可是ps没发现能截屏后复制图片来修改的功能,而且对这种情况切出来的效果很差
无意中火狐按F12查看html时发现有一个节点截图选项正好能实现想截网页上某个按钮或图片的功能
*/

/*
CSS MASTERY里面的清除浮动的三种方法:
1.添加空元素 <br class="clear"> 或div
2.利用元素的overflow:hidden/auto属性自动清理
3.并不直接向标记中添加进行清理的元素,而是将它动态的添加到页面,
结合伪类和内容声明在指定的现有内容的末尾添加新的内容,例如一个点:
指定进行清理的元素出现在哪里就添加一个clear类名即可(类名之间只需要用空格隔开即可):
.clear:after{
  content: ".";
  height: 0;
  visibility: hidden;
  display: block;
  clear: both;
}
*/

/*
属性学习:
background-clip: border-box|padding-box|content-box;
可将背景颜色限制在边框盒/内边距盒/内容盒里面

top/left:分别设置定位元素的上外边距边界与其包含块上边界之间的偏移;
定位元素左外边距边界与其包含块左边界之间的偏移
可用来实现顶格;但是这是对定位元素而言,若未设position则为默认static,此时无效
*/

/*
定位回顾(主要css mastery):
相对定位/绝对定位/固定定位(relative/absolute/fixed):
相对定位是“相对于”元素在文档流中的初始位置
绝对定位是“相对于”距离它最近的已定位的祖先元素,如果不存在已定位的祖先元素,那么相对于初始包含块
固定定位是绝对定位的一种,差异在于固定元素的包含块是视口(w3cschool上即直接说明是相对于浏览器窗口定位)
*/


/*
为什么不能够整体平移呢?

1.特意在header元素和它包裹的元素之间加了一个<div class = "header-inner">,然后准备用它来padding-left:80px;这样不就更好吗?
结果不行...当在header里面用padding-left时又是可以的!

2.同样为什么nav包裹了三个a元素,对nav实现padding-left还是不能实现?

*/

/*
一直的误区:
以为display:inline是用在父元素上,然后它的所有子元素就会全部排列成一行
然后才从w3cschool的一个例子里面醒悟了过来
p{display: inline}  <p>本例中的样式表把段落元素设置为内联元素。</p>

display:inline是给指定的元素用的,使用的元素会变成内联元素
其实就相当于display:block的反义词一样啊!
*/

/*
怎么解决导航列表里面给a设置边框border-0em .1em;时会出现在中间的a元素会重叠边框的现象?

javascriptDOM编程艺术里面的方法是:
先#navigation{ border-bottom- 0;border-top- 0;}确保上下边框宽度为0
再#navigation ul{border-left- .1em;border-left-style: solid;}确保左边框
最后#navigation li a {border-right: .1em solid;}确保右边框
*/

/*
感悟:
1.其实无论是刚刚入门看的head first html,看似自己雄心勃勃的一天就全看完,实则太多东西是你自己根本没理解的
不然也不会做个导航栏到现在都做不出,就连基本的列表怎么变成横块状,设置元素的padding怎么就是不生效?这些问题都半知不解

2.一个个小部件来做,一个个弄懂,一个个去追问,没有什么不好意思的,技不如人,就更要老老实实啊
*/

原文地址:https://www.cnblogs.com/giggling/p/6833385.html