C语言模拟密码输入(显示星号)-c语言模拟密码输入显示星号.md
http://c.biancheng.net/view/vip_1801.html
一个安全的程序在用户输入密码时不应该显示密码本身,而应该回显星号或者点号,例如······或**,这在网页、PC软件、ATM机、POS机上经常看到。但是C语言没有提供类似的功能,控制台上只能原样显示用户输入的字符。
我们完全可以模拟密码输入的效果,请先看下面的代码:#include <stdio.h>#include <conio.h>#include <ctype.h>#define PWDLEN 20void getpwd(char pwd, int pwdlen);int main(){char pwd[PWDLEN+1];printf(“Input password: “);getpwd(pwd, PWDLEN);printf(“The password is: %s\n”, pwd);return 0;}/*
获取用户输入的密码
@param pwd char* 保存密码的内存的首地址
@param pwdlen int ...
C语言模拟密码输入(显示星号)-c语言模拟密码输入显示星号.md
http://c.biancheng.net/view/vip_1801.html
一个安全的程序在用户输入密码时不应该显示密码本身,而应该回显星号或者点号,例如······或**,这在网页、PC软件、ATM机、POS机上经常看到。但是C语言没有提供类似的功能,控制台上只能原样显示用户输入的字符。
我们完全可以模拟密码输入的效果,请先看下面的代码:#include <stdio.h>#include <conio.h>#include <ctype.h>#define PWDLEN 20void getpwd(char pwd, int pwdlen);int main(){char pwd[PWDLEN+1];printf(“Input password: “);getpwd(pwd, PWDLEN);printf(“The password is: %s\n”, pwd);return 0;}/*
获取用户输入的密码
@param pwd char* 保存密码的内存的首地址
@param pwdlen int ...
C语言 指针
指针(pointer)很多人理解成地址(address)。其实不然,指针就是地址,地址就是指针;指针变量是一个变量,它保存了基本类型变量的地址。就好比你和别人说你家地址是:XX省XX市XX区XX镇XX小区XX单元XX号,你可能觉得很准确,但是,地址更加准确:XX省XX市XX区XX镇XX小区XX单元XX号+只有这一间,XX省XX市XX区XX镇XX小区XX单元XX号+连排几家。所以本质山指针描述的信息更多,只是其中包含了地址信息而已。
指针变量数据在内存中的地址也称为指针,如果一个变量存储了一份数据的指针,我们就称它为指针变量。
定义指针变量:
1datatype *name;
或者
1datatype *name = value;
指针变量的运算数组指针一个指针指向了数组,我们就称它为数组指针(Array Pointer)。
二维数组指针字符串指针指针变量作为函数参数指针作为函数返回值二级指针(指向指针的指针)详解空指针NULL以及void指针空指针 NULLNULL 是“零值、等于零”的意思,在C语言中表示空指针。
NULL 是在stdio.h中定义的一个宏,它的具体内容为:
#d ...
C语言 指针
指针(pointer)很多人理解成地址(address)。其实不然,指针就是地址,地址就是指针;指针变量是一个变量,它保存了基本类型变量的地址。就好比你和别人说你家地址是:XX省XX市XX区XX镇XX小区XX单元XX号,你可能觉得很准确,但是,地址更加准确:XX省XX市XX区XX镇XX小区XX单元XX号+只有这一间,XX省XX市XX区XX镇XX小区XX单元XX号+连排几家。所以本质山指针描述的信息更多,只是其中包含了地址信息而已。
指针变量数据在内存中的地址也称为指针,如果一个变量存储了一份数据的指针,我们就称它为指针变量。
定义指针变量:
1datatype *name;
或者
1datatype *name = value;
指针变量的运算数组指针一个指针指向了数组,我们就称它为数组指针(Array Pointer)。
二维数组指针字符串指针指针变量作为函数参数指针作为函数返回值二级指针(指向指针的指针)详解空指针NULL以及void指针空指针 NULLNULL 是“零值、等于零”的意思,在C语言中表示空指针。
NULL 是在stdio.h中定义的一个宏,它的具体内容为:
#d ...
C语言 预处理命令——宏定义与条件编译
在编译和链接之前,还需要对源文件进行一些文本方面的操作,比如文本替换、文件包含、删除部分代码等,这个过程叫做预处理,由预处理程序完成。
#include的用法详解#include叫做文件包含命令,用来引入对应的头文件(.h文件)。#include也是C语言预处理命令的一种。
#include的处理过程很简单,就是将头文件的内容插入到该命令所在的位置,从而把头文件和当前源文件连接成一个源文件,这与复制粘贴的效果相同。
#include 的用法(两种):12#include <stdHeader.h>#include "myHeader.h"
使用尖括号< >和双引号” “的区别在于头文件的搜索路径不同:
使用尖括号< >,编译器会到系统路径下查找头文件;
而使用双引号” “,编译器首先在当前目录下查找头文件,如果没有找到,再到系统路径下查找。
使用双引号比使用尖括号多了一个查找路径,它的功能更为强大。
「在头文件中定义定义函数和全局变量」这种认知是原则性的错误!不管是标准头文件,还是自定义头文件,都只能包含变量和函数的声明 ...
C语言 预处理命令——宏定义与条件编译
在编译和链接之前,还需要对源文件进行一些文本方面的操作,比如文本替换、文件包含、删除部分代码等,这个过程叫做预处理,由预处理程序完成。
#include的用法详解#include叫做文件包含命令,用来引入对应的头文件(.h文件)。#include也是C语言预处理命令的一种。
#include的处理过程很简单,就是将头文件的内容插入到该命令所在的位置,从而把头文件和当前源文件连接成一个源文件,这与复制粘贴的效果相同。
#include 的用法(两种):12#include <stdHeader.h>#include "myHeader.h"
使用尖括号< >和双引号” “的区别在于头文件的搜索路径不同:
使用尖括号< >,编译器会到系统路径下查找头文件;
而使用双引号” “,编译器首先在当前目录下查找头文件,如果没有找到,再到系统路径下查找。
使用双引号比使用尖括号多了一个查找路径,它的功能更为强大。
「在头文件中定义定义函数和全局变量」这种认知是原则性的错误!不管是标准头文件,还是自定义头文件,都只能包含变量和函数的声明 ...
C语言 位运算
http://c.biancheng.net/view/2038.html
http://c.biancheng.net/view/vip_2039.html
C语言 位运算
http://c.biancheng.net/view/2038.html
http://c.biancheng.net/view/vip_2039.html
C语言 随机数生成——rand和srand用法-c语言rand和srand用法.md
在C语言中,我们一般使用 <stdlib.h> 头文件中的 rand() 函数来生成随机数,它的用法为:
1int rand (void);
void 表示不需要传递参数。
C语言中还有一个 random() 函数可以获取随机数,但是 random() 不是标准函数,不能在 VC/VS 等编译器通过,所以比较少用。
rand() 会随机生成一个位于 0 ~ RAND_MAX 之间的整数。
RAND_MAX 是 <stdlib.h> 头文件中的一个宏,它用来指明 rand() 所能返回的随机数的最大值。C语言标准并没有规定 RAND_MAX 的具体数值,只是规定它的值至少为 32767。在实际编程中,我们也不需要知道 RAND_MAX 的具体值,把它当做一个很大的数来对待即可。
下面是一个随机数生成的实例:
1234567#include <stdio.h>#include <stdlib.h>int main(){ int a = rand(); printf("%d\n",a); ...
C语言 随机数生成——rand和srand用法-c语言rand和srand用法.md
在C语言中,我们一般使用 <stdlib.h> 头文件中的 rand() 函数来生成随机数,它的用法为:
1int rand (void);
void 表示不需要传递参数。
C语言中还有一个 random() 函数可以获取随机数,但是 random() 不是标准函数,不能在 VC/VS 等编译器通过,所以比较少用。
rand() 会随机生成一个位于 0 ~ RAND_MAX 之间的整数。
RAND_MAX 是 <stdlib.h> 头文件中的一个宏,它用来指明 rand() 所能返回的随机数的最大值。C语言标准并没有规定 RAND_MAX 的具体数值,只是规定它的值至少为 32767。在实际编程中,我们也不需要知道 RAND_MAX 的具体值,把它当做一个很大的数来对待即可。
下面是一个随机数生成的实例:
1234567#include <stdio.h>#include <stdlib.h>int main(){ int a = rand(); printf("%d\n",a); ...