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)==0strcmp(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: 1Register: 2Exit: 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函数实现】关于login函数c语言和c语言log2函数实现的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- java爬虫抓取关键词,java爬虫步骤
- sqlserver表编辑状态,sql server如何编辑表
- postgresqltuple的简单介绍
- pdf转word打字,pdf转word后怎么编辑文字图片
- phppdo插入数据 php数据表里怎么添加数据
- css的样式有几种方式,css的样式有几种方式选择
- 飞行棋游戏作文,玩飞行棋的作文500
- 跨年晚会直播标题素材,跨年晚会直播标题素材大全
- linux输入命令的在哪 linux常用命令怎么输入