C ++ sscanf空格分隔字符串(C++ sscanf space delimited string)

编程入门 行业动态 更新时间:2024-10-23 11:31:21
C ++ sscanf空格分隔字符串(C++ sscanf space delimited string)

这是我的练习代码:

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

可悲的是,我没有看到问题所在。 有人可以帮我这个吗? 谢谢

Here is my practice code:

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);

I am using this code to take input like abc 2012 but the result will be abc 0

Sadly I didn't see where the problem is. Can anyone help me with this a little? thank you

最满意答案

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

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的强大功能来读取给定格式的数据。

This reads only first space delimited string:

cin>>input_string;

Use this way:

cin>> string_part >> integer_part;

Don't mix C++ and C way of reading from streams.

You can use this way to read string without space delimited:

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

I can understand you need the power of scanf to read data in a given format.

更多推荐

本文发布于:2023-08-05 06:18:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1428811.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:空格   字符串   sscanf   string   delimited

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!