gpt4 book ai didi

c - 使用 sscanf 和括号将字符串分解为小块

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

我一定错过了一些非常简单的东西,但我没有任何线索。运行后:

int main() {
char requete[] = {"205 7.3 data data\n"};
char codeUserReq[9];
char choixReq[3];
char donneeReq[200];

memset(codeUserReq, 0, 5);
memset(choixReq, 0, 3);
memset(donneeReq, 0, 200);

sscanf(requete, "%s %s %[^\n]", codeUserReq, choixReq, donneeReq);
printf("codeuser %s \n",codeUserReq);
printf("choix %s \n",choixReq);
printf("donnee %s \n",donneeReq);

我预计结果是:

codeuser 205
choix 7.3
donnee data data

相反,它是:

codeuser
choix 7.3
donnee data data

此代码在 ubuntu 上有效,但在 debian 上无效。

第一个字符串未正确读取。

最佳答案

通过向其中写入“7.3”,您会溢出choixReq(因为这是'7'、'.'、'3'、'\0',四个字符) .

如果我将 choixReq 更改为包含 4 个字符,我会得到正确的输出:

codeuser 205
choix 7.3
donnee data data

关于c - 使用 sscanf 和括号将字符串分解为小块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54597668/

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