gpt4 book ai didi

C++ sscanf 空格分隔的字符串

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

这是我的练习代码:

int integer_part;

char* string_part = (char*)malloc(sizeof(1000));

char* input_string = (char*)malloc(sizeof(1000)+sizeof(int));

cin>>input_string;

sscanf(input_string, "%s %d", string_part, &integer_part);

printf("scan: %s %d", string_part, integer_part);

我正在使用这段代码来获取像 abc 2012 这样的输入,但结果将是 abc 0

遗憾的是我没有看到问题出在哪里。谁能帮我一点忙?谢谢

最佳答案

这只读取第一个空格分隔的字符串:

cin>>input_string;

这样使用:

cin>> string_part >> integer_part;

不要混合使用 C++ 和 C 的流读取方式。

您可以使用这种方式读取没有空格分隔的字符串:

cin.read ( input_string, sizeof(1000)+sizeof(int) - 1);
size_t read_Len = cin.gcount();
input_string[read_Len] = '\0';

我可以理解您需要 scanf 的强大功能来读取给定格式的数据。

关于C++ sscanf 空格分隔的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12518820/

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