正文
login函数c语言 c语言log2函数实现
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
C语言,我想通过调用口令函数和加法函数实现加法运算
#includestdio.h
#includeconio.h
void login();
void add();
bool flags = true;
void main()
{
while(flags)
login();
//add();
//getch();
}
void login()
{
int k;
int L=888;
printf("口令888;请输入验证口令:");
scanf("%d",k);
if(L==k)
{
int choice;
printf("您输入正确,欢迎使用C计算器\n");
printf("+=======选择要做的运算=======+\n");
printf("+= 1、加法 =+\n");
printf("+= 2、减法 =+\n");
printf("+= 3、乘法 =+\n");
printf("+= 4、除法 =+\n");
printf("+= 5、求余 =+\n");
printf("+= 0、退出 =+\n ");
printf("+============================+\n");
scanf("%d",choice);
switch(choice)
{
case 1:
add();
break;
case 0:
flags = false;
break;
default : printf("您输入有误");
break;
}
}
else
{
printf("您输入错误,请重新输入!");
}
}
void add()
{
int jia,fa;
printf("请输入2个数");
scanf("%d %d",jia,fa);
printf("%d+%d=%d\n",jia,fa,jia+fa);
}
首先你add写在login里面,main先执行login在执行add,可是add在login了,所以main保留一个login,函数不能嵌套,add写在外面。为了实现循环,添加一个标志位flags初始为true,在选项里添加一个退出,选择之后flags设为flase,退出计算器。
C语言程序设计,login和下面那几个都是子函数,这个报错是什么意思?
同个login你定义了两种类型的了,比如定义long login后有定义char login
编一个注册登陆的程序 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;
}
搞定了。。。我是用成功了的。。。如果有问题就发信给我。。。。
求助报错 C2664“int login(char [],char [])”: 无法将参数 1 从“const char [6]”转换为“char []”?
你看login函数的声明和定义不一样。
函数声明在main函数之前:
int login(char[], char[]);
函数实现在main函数主体之后:
int login(const char username[], const char passworld[])
你需要把两处改成一样。当然目前你调用时传入的参数都是const char *,因此不能有const。如果调用的时候,参数是char *的话,则有没有const都可以。
简单补充一下关于const关键字的说明:
楼上老哥说C语言没有const其实是不对的,C语言当然有const,而且和C++的const是一样的。加上const之后,表示内容不可变。如果是指针类型的变量,则有轻微区别:
const char * 或 char const *:表示此指针指向的内容不能修改(因此编译器不允许将const char *转成char*,因为后者允许修改指向的地址内容;但是反过来是可以的,比方说main函数里可以修改的char数组,可以要求在被调用的函数中不能修改)
char * const:char *类型的指针,且此指针变量的值不能被修改(指向的内容不管)。
所以还有最鬼畜的:const char * const,表示指针变量值不能修改(不能指向别的地方),指向的内容也不能被修改。
c语言中void login()是什么意思
如果不需要程序返回值时可以把login函数定义成void login()。事实上根据c99,应该是int login(void)。login()楼下说了,是自定义函数,此处为调用。
关于login函数c语言和c语言log2函数实现的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。