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
可悲的是,我没有看到问题出在哪里。谁能帮我一点忙?谢谢
这只读取第一个空格分隔的字符串:
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] = ' ';
我可以理解您需要scanf
的强大功能来读取给定格式的数据。
您滥用了sizeof
.如果你想要 1,000 个字符的空间,你不需要 1,000 本身的大小,你想要字符大小的 1,000 倍。您可以使用1000 * sizeof(char)
.由于sizeof
返回字符(因此sizeof(char)
必须是 1),因此您可以使用 1000
.
相关文章:
- 在C++的两个字符串中连接以逗号分隔的唯一值
- 用于存储由空格分隔的字符串的 C++/C 数据结构
- C ++中的StringStream有助于使用向量从字符串中提取逗号分隔的整数,而不是空格分隔的整数,为什么?
- 如何分隔字符串并将标记传递给方法
- 在Arduino中将字符串转换为(逗号分隔的十六进制)字符串到无符号字符数组
- C++ 用空格和逗号分隔字符串
- 如何将字符串中的值分隔为数组
- 如何将整数值解析为逗号分隔字符串中的单独 int 变量?
- 包含换行符分隔的单词的文件和C++中这些单词的字符串向量的大小是否相同?
- 反转由空格分隔的字符串元素将返回比原始字符串更大的字符串
- 如果用户输入两个或多个由空格分隔的字符串C++如何防止缓冲区溢出?
- 如何分隔字符串并将每个部分存储在不同的向量中
- 如何按特定分隔符分隔字符串
- 字符串流分析逗号分隔的整数
- 将字节数组转换为逗号分隔的整数字符串
- 逗号分隔字符串的总和,例如 O(n) 中的 4,1,3
- 如何在C++中分隔和排列名字和全名字符串
- C++ c 字符串分隔与
- 将字符串分隔为分隔符strtok (c++)
- 如何在c++中清晰地从istream中提取字符串分隔的字符串