标签 语法 下的文章

C++ string型初识与getline

string比C语言好用多了。只要引入一个#include <string>以及using std::string;就OK了,其他部分真是像极了其他的语言,一些用法可以看注释,getline就和gets差不多一个意思,但没有数组自然也没什么风险吧。大致是酱紫的。

#include <iostream>
#include <string>
using std::string;
using std::cin;
using std::cout;
using std::endl;

int main()
{
    string line;
    string s1 = "Hello", s2 = " World";
    string s3 = s1 + s2;
    cout << s3 << endl;
    while (getline(cin, line))
        /* 如果不为空 */
        //if (!line.empty())
        /* 输出大于10字符的行 */
        if (line.size() > 10)
            cout << line << endl;
        
    /*
    while (cin >> word)
        cout << word << endl;
    */
    return 0;
}

C++ 命名空间的using声明

C++中,老师上课说的一直有一句:using namespace std;,不过他是什么意思,其实也就是一个命名空间的概念,概念这东西不多说(Primer 74页)

我们为什么要使用命名空间,不使用会有什么麻烦。
这里我们看一段代码:

#include <iostream>

int main()
{
    std::cout << "Enter two numbers:" << std::endl;
    int v1 = 0, v2 = 0;
    std::cin >> v1 >> v2;
    std::cout << "The sum of " << v1 << " and " << v2 << " is " << v1 + v2 << std::endl;

    return 0;
}

- 阅读剩余部分 -

C++ auto decltype 初始化变量类型

C++中的两种有趣的类型,让编译器自己去分析我们所需要的数据类型,这两者有有些区别:
auto 定义的变量必须具有初值

// 由val1和val2相加的结果可以推断出item的类型
auto item = val1 + val2;  // 初始化为val1和val2相加的结果

但是,注意以下两条:

auto i = 0, *p = &i;   // 正确:i是整数,p是整型指针
auto sz = 0, pi = 3.14;  // 错误,sz和pi的类型不一致

具体的,Primer61页之后有,稍微看下就好了,关于类型都是个麻烦的东西。

- 阅读剩余部分 -

C 清空键盘缓冲区若干方法

写这次的数据结构的作业的时候对于缓冲区问题深表蛋疼,getchar()深表拙计,于是搜了一下……

以下文字来自:http://www.ludou.org/c-clear-buffer-area.html

清空键盘缓冲区很多种方法,如用fflush(stdin); rewind(stdin);等,但是在linux这些都不起作用,还得我今天试了半天都没成功,上网搜了一下发现setbuf(stdin, NULL);就能直接清空键盘缓冲区了。

以下几个实例:

Sample one

#include <stdio.h>

int main()
{
    char ch1;
    char ch2;

    ch1 = getchar();
    ch2 = getchar();
    printf("%d  %d", ch1, ch2);
    return 0;
}

- 阅读剩余部分 -

Javascript 做个跳转界面

不算是成品,只是提供一个思路,学了location.repalce()发现是分分钟的事情。

演示

很简单的使用超时调用就搞定了。

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>You won't be able to get back here</title>
</head>
<body>
    <p>Enjoy this page for a second, because you won't be coming back here.</p>
    <script type="text/javascript">
        setTimeout(function() {
            location.replace("http://codesky.me");
        }, 1000);
    </script>
</body>
</html>

Javascript 截取字符串的三种方法比较

一共有三种方式截取字符串(不含根据传入参数截取成数组的split()方法)这里说的是子字符串,所以不说split()方法了。

slice(),substr(),substring()一共三种方法,其中各有不同,他们都可以传一个或两个参数进去,第一个参数都是起始位置,slice()substring()第二个参数为终止位置(输出到终止位置前一个字符),而substr为字符长度,但传入负数时情况又不一样了。

这里就负数来个实例:

var stringValue = "Hello World";
console.log(stringValue.slice(-3));
console.log(stringValue.substring(-3));
console.log(stringValue.substr(-3));
console.log(stringValue.slice(3, -4));
console.log(stringValue.substring(-4, 3));
console.log(stringValue.substring(3, -4));
console.log(stringValue.substr(3, -4));

输出:

rld
Hello World
rld
lo W
Hel
Hel

最后一个为空字符串,而substring吧负值转换为0,似乎就是从0到另一个参数的意思。slice()则中规中矩的负号表示倒过来数。

JavaScript BOM初体验-window.open

看了半天,终于到了我觉得实战的部分了,首先是window.open,说白了就是弹出窗口。
基础的来讲:

// 等同于 <a href="http://codesky.me" target="topFrame"></a>
window.open("http://codesky.me", "topFrame");

等价的时候用没什么前途,所以这里还有别的用法,topFrame,也就是第二个参数,可以传入_self,_parent,top以及_blank,而第二个参数并不是已存在的窗口和框架时,会去读取第三个参数来决定,第三个参数中似乎一些都是不怎么好用的,主要是top,width,left,height位置。

- 阅读剩余部分 -

Javascript 寄生组合式继承

接触了好几种继承模式了,在前一篇文章,我们就说到了一些继承方法,本以为组合是最好的,结果没想到还有。

故事从原型式继承说起:

function object(o) {
    function F(){}
    F.prototype = o;
    return new F();
}

var person = {
    name: "Nicholas",
    friends: ["Shelby", "Court", "Van"]
};

var anotherPerson = object(person);
anotherPerson.name = "Greg";
anotherPerson.friends.push("Rob");

var yetAnotherPerson = object(person);
yetAnotherPerson.name = "Linda";
yetAnotherPerson.friends.push("Barbie");

console.log(person.friends);

- 阅读剩余部分 -

Javascript call()与apply()

js中对于function,有callapply两种方法,在看书时前面没发现他们俩太大的作用,现在找到了一个实例,能说明apply的优点。

function SpecialArray() {
    var values = new Array();

    values.push.apply(values, arguments);

    values.toPipedString = function() {
        return this.join("|");
    };

    return values;
}

var colors = new SpecialArray("red", "blue", "green");
console.log(colors.toPipedString());

- 阅读剩余部分 -