gpt4 book ai didi

C用户定义函数问题

转载 作者:行者123 更新时间:2023-11-30 14:32:49 25 4
gpt4 key购买 nike

我正在使用C测试sqlite3,我决定制作一个简单的程序,从函数的输入中获取用户名和密码,并将其传递到插入到sqlite3 数据库表。我遇到的问题是,每当我提到我在代码中的任何位置编写的函数时,每次提到都会出现这样的错误:

error: expected identifier or ‘(’ before ‘register’
void *register(const char *u,const char *p)

这是我的代码:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<sqlite3.h>

void register(const char *u,const char *p)
{
printf("Enter your desired username: \n");
scanf("%s", u);
printf("Enter your desired password: \n");
scanf("%s", p);
}


int main()
{
const char new_user[50];
const char new_pass[50];
sqlite3 *db;
sqlite3_stmt *stmt;
int rc = sqlite3_open("test.db", &db);
if(rc != SQLITE_OK)
{
fprintf(stderr, "Problem opening Database: %s\n", sqlite3_errmsg(db));
return 0;
}


char *sql = "INSERT INTO Users VALUES(?, ?, '0335804828', 'Strada userului nr 9', NULL, 0);";
rc = sqlite3_prepare_v2(db, sql, -1, &stmt, 0);

if (rc == SQLITE_OK)
{
sqlite3_bind_text(stmt, 1, "blala", -1, SQLITE_STATIC);
sqlite3_bind_text(stmt, 2, "blabla", -1, SQLITE_STATIC);
}
else
{
fprintf(stderr, "Failed to execute statement: %s\n", sqlite3_errmsg(db));
}

return 0;
}

如您所见,代码尚未完成,但由于上述错误而无法编译。我搜索过类似的答案,但对我的情况没有任何作用。我尝试过更改函数及其类型,但没有任何效果。

最佳答案

void register(const char *u,const char *p)
{
printf("Enter your desired username: \n");
scanf("%s", u);
printf("Enter your desired password: \n");
scanf("%s", p);
}

两个问题。您使用register作为函数名称,但它是不能使用的C关键字。

当您更改名称时,您的函数参数是错误的。 const char *u 表示 'u' 引用的字节是 const 并且不能更改。

void foo(char *u,char *p);

或者如果指针没有改变

void foo(char * const u,char * const p);

关于C用户定义函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59669526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com