gpt4 book ai didi

c - 打印 strtok 标记时出现段错误

转载 作者:太空宇宙 更新时间:2023-11-04 02:52:46 25 4
gpt4 key购买 nike

我正在尝试使用 fgets 从 stdin 获取一行用户输入,使用 strtok 对其进行标记,然后打印每个标记以确保它被正确标记。我的代码如下:

char buffer[256];
char *token;`
fgets(buffer, 256, stdin);
token=strtok(buffer," \n\t()<>|&;");

while(token!=NULL) {
printf("%s",token);
count++;
token = strtok(NULL," \n\t()<>|&;");
}

但是,每当我调用 printf 时,我都会遇到段错误,而且我似乎无法弄清楚原因。

最佳答案

我没有看到你的代码有问题(除了第二行末尾的杂散 ` ,我认为它不在你的实际代码中)。

但是,这一行:

        printf("%s",token);

永远不会打印任何换行符,这意味着它永远不会刷新输出缓冲区。因此,如果您稍后在程序中遇到段错误,它可能看起来就像是在您打印第一个标记之前发生的,只是因为它阻止了输出缓冲区被刷新。

出于调试目的,尝试将上面的内容更改为:

        printf("%s\n",token);

并查看在段错误之前打印的内容。

关于c - 打印 strtok 标记时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20459671/

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