gpt4 book ai didi

c - C语言系统函数——从CodeBlocks(C)程序创建用户

转载 作者:行者123 更新时间:2023-12-03 16:06:12 25 4
gpt4 key购买 nike

我有一个问题,我想做一个程序,用于在 PC 上创建一个帐户。我从用于创建新用户的键盘名称和密码写入。当我想在代码中编写命令时,一切都很好,我使用了“system(”net user xxx/add”)”,其中 xxx == 新用户的名称,是的,它是这样工作的,但我想将 xxx 更改为从键盘写入的变量。我的意思是,正在创建的新用户的名称,程序的用户将选择。有帮助吗?

int main()
{

char login;



printf("Login of the new user:");

scanf("%s",&login);

system("net user xxx /add");



return 0;
}

最佳答案

您可以使用函数sprintf 来构建字符串。它的工作方式与 printf 类似,但它的输出是在字符数组中而不是作为输出到 stdout

例如:

char buffer[100], login[100];
printf("Login of the new user: ");
scanf("%s", login); // notice there is no & operator here
sprintf(buffer, "net user %s /add", login);
system(buffer);

更安全的代码会使用snprintf,它也将目标字符数组的长度作为参数以确保它不会溢出。此外,我会使用 fgets 而不是 scanf 因为它本质上更安全,原因与 snprintfsprintf< 更安全.

作为旁注,对于您尝试执行的操作(在 Windows 系统上添加新用户),there are Windows APIs specifically designed for that purpose您应该使用而不是从 system 调用 net 命令,因为这些方法将指示尝试添加用户的成功和失败。我承认 Windows API 的学习曲线非常陡峭,但如果它能让您避免使用 system 函数,那确实是正确的选择。

关于c - C语言系统函数——从CodeBlocks(C)程序创建用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44607743/

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