资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

c语言登录注册函数 c语言实现用户注册与登录

大家帮忙看一下我的C语言注册登录函数写的哪里不对?

首先看下fwrite的原型

创新互联是由多位在大型网络公司、广告设计公司的优秀设计人员和策划人员组成的一个具有丰富经验的团队,其中包括网站策划、网页美工、网站程序员、网页设计师、平面广告设计师、网络营销人员及形象策划。承接:网站建设、网站制作、网站改版、网页设计制作、网站建设与维护、网络推广、数据库开发,以高性价比制作企业网站、行业门户平台等全方位的服务。

size_t fwrite(const void* buffer,size_t size,size_t count,FILE* stream);

(1)buffer:是一个指针,对fwrite来说,是要输出数据的地址。

(2)size:要写入内容的单字节数;

(3)count:要进行写入size字节的数据项的个数;

(4)stream:目标文件指针。

printf("请输入用户名(最大7位):");

scanf("%s",c1);

fwrite(c1,8,1,fp); // line one

printf("请输入密码(最大15位):");

scanf("%s",d1);

fwrite(d1,16,1,fpm); //line two

line one 的参数应该是(c1,sizeof(char),8,fp);

line two 的参数应该是(d1,sizeof(char),16,fpm);

while(s2[iu]!='\0')

{

fread(s2[iu],sizeof(char),1,fp);

iu++;

fp++; //这里是不需要的,文件读取之后文件内部指针会自动移动

} //还有这里是可以一次读取出来的,为什么不这样做呢?

下面读取密码的时候也是一样,其他暂时没看出什么来。。。。

读取出的东西不对,除了读取的方式有错,再就是本来写入的数据就是错误的、

C语言中的注册表操作函数有哪些?

要调用Windows

API的RegOpenKeyEx(),

RegSetValueEx(),

RegSetValueEx()等函数。首先要确认你的C编译器支持调用Windows

API.

举例:

要自动运行"D:\Myprog\MyProgram.exe",

修改注册表,在

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

中加一项:

RunMyProg="D:\Myprog\MyProgram.exe"

#include

windows.h

static

char

subkey[]

=

"Software\\Microsoft\\Windows\\CurrentVersion\\Run";

static

char

vname[]

=

"RunMyProg";

static

char

exefile[]

=

"D:\\Myprog\\MyProgram.exe";

ULONG

dType

=

REG_SZ,

len

=

0;

HKEY

hKey;

RegOpenKeyEx(HKEY_LOCAL_MACHINE,subkey,0,KEY_SET_VALUE|KEY_QUERY_VALUE,hKey);//打开。

if

(RegQueryValueEx(hKey,

vname,

0,

dType,

NULL,

len))

{

//如果没有RunMyProg,

RegSetValueEx(hKey,

vname,

0,

REG_SZ,

exefile,

strlen(exefile)+1);

//就加上。

}

RegCloseKey(hKey);

//关闭。

C语言编程:实现用户的注册和登录

模拟用户注册和登陆可以用文件来保存用户名和密码。注册就是向文件里写,用if判断两次密码是否一致。连续三次,可以有一个变量,每次输入加一,变量大于三就提示登陆不成功。用户名不对,那你就把你输入的用户名和文件里的用户名是否一致。

编一个注册登陆的程序 C语言的

#include stdlib.h

#include stdio.h

#include string.h

bool search(char id[], char pass[]) {

FILE *fp;

char tid[10], tpass[10];

fp = fopen("c:\\data", "r");

while (!feof(fp)) {

fscanf(fp, "%s%s", tid, tpass);

if (strcmp(tid, id)==0 strcmp(tpass, pass)==0) {

fclose(fp);

return true;

}

}

fclose(fp);

return false;

}

bool login() {

char id[10], pass[10];

printf("Login\nPress the id: ");

scanf("%s", id);

printf("Press the password: ");

// 可以自行将password处理成*号, 如果不会可以发信给我

scanf("%s", pass);

printf("-----------------------");

if (search(id, pass))

return true;

else

return false;

}

void _add(char id[], char pass[]) {

FILE *fp;

fp=fopen("c:\\data", "a");

// 在写入文件时可以按一定的排序方式插入,可减少以后Login时的search时间

fprintf(fp, "%s %s\n", id, pass);

fclose(fp);

}

void regis() {

char id[10], pass[10], tpass[10];

printf("Register\nPress the id: ");

scanf("%s", id);

while (true) {

printf("Press the password: ");

scanf("%s", pass);

printf("Press the password again: ");

scanf("%s", tpass);

if (strcmp(pass, tpass) != 0)

printf("The passwords you pressed are not the same!\n");

else

break;

}

_add(id, pass);

printf("-----------------------Register successfully!\n");

}

void init() {

FILE *fp;

if ((fp=fopen("c:\\data", "r")) == NULL) { // 注意,一定要有个名叫data(没有扩展名)的合法文件在C盘根目录

printf("---------File is not exist\n");

system("pause");

exit(0);

}

else

fclose(fp);

}

int main(void){

int command;

init(); // 检查data文件在不在

while (true) {

printf("-----------------------(Login: 1 Register: 2 Exit: 3)\n");

scanf("%d", command);

printf("-----------------------\n");

// 这里可以编写command的检测语句

if (command == 3)

break;

else if (command == 1) {

if (!login())

printf("ID is not exist or password is wrong!\n");

else

printf("Login successfully!\n");

}

else

regis();

}

return 0;

}

搞定了。。。我是用成功了的。。。如果有问题就发信给我。。。。


网站栏目:c语言登录注册函数 c语言实现用户注册与登录
分享链接:http://cdkjz.cn/article/doopiih.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220