我正在接收一个浮点数值类似于-157.571的缓冲区91.223 -165.118 -59.975 0.953 0 0.474 0 0 0.953 0 0.474 0.474 0 5.361 0 0 0.474 0 5.361 ...但它们是以字符形式的......现在我想检索一个接一个的值,并把它放在一个变量中...任何一个都可以帮助我...我使用了memcpy,但没有使用..如果我复制8个字节,其取值为-157.571和8个值包括' - '和'。' ....是否有任何解决方案..使用linux进行C++编程
回答
如果我理解正确,你有一个存储在某种类型的字符串中的值,你想从中检索浮点值。如果是这种情况,则取决于您使用的语言。如果您使用C++,则应使用std::istringstream
执行转换。如果您使用C(和/或来自C++的cstdio
系统而不是iostream
),则应该使用sscanf
。如果您使用的是C#,则应该使用Double.TryParse
。
我已经使用sscanf但没有用...你可以发送一个简单的例子..在C++ – bindu 2010-11-26 06:02:10
您有一个字符串,其中包含许多由空格分隔的浮点值。
如果您可以使用strtof()
将它们一次一个地转换为float
值。
float strtof(const char *nptr, char **endptr);
where
将包含指向已转换的最后一个字符的指针,因此可用于遍历字符串。nptr
是您希望转换的字符串,而endptr
是指向字符指针的指针。 endptr
例如。
char *rawString; char **walkPtr; float convertedValue; /* do something to collect the next series of floats */ /* and now do the conversions */ *walkPtr = rawString; while(still_some_string_to_process) { convertedValue = strtof(*walkPtr, walkPtr); // increment the pointer to skip over the delimiting space *walkPtr++; }
相应的错误检查应适用,以确保你不跑的字符串的结束,等
比方说,你的花车的缓冲区是这个字符串:
"-157.571 91.223 -165.118 -59.975 0.953 0 0.474 0 0 0.953 0 0.474 0.474 0 5.361 0 0 0.474 0 5.361"
您的干净的C++方法是本加载到std::istringstream
,然后使用该流来提取浮子个值..即
std::istringstream str(buffer);
现在你可以使用流中的操作人员提取浮点值,并重复这一点,直到没有更多的(提示:检查流标志)
str >> {float}; // then do something with {float}
可选您可以将此提取的值推送到std::vector
以为您提供字符串中的浮点数。我没有写出完整的代码,只是伪给你一个想法...
- 1. 在Ubuntu中使用C/C++进行编程linux
- 2. 使用C#进行并行编程
- 3. 使用fork进行C语言编程()
- 4. 关于使用C++进行Windows编程
- 5. C编程:使用pthreads进行调试
- 6. 使用C#进行Android编程#
- 7. 使用Eclipse进行C编程?
- 8. 使用eclipse进行C编程
- 9. 使用linux命令行进行FTDI eeprom编程
- 10. 如何编译C++在Linux上进行,以使Windows二进制
- 11. 使用http进行C编程的Socket编程post
- 12. 在Ubuntu Linux上使用Kinect进行编程
- 13. 从servlet使用Runtime.exec运行linux进程()
- 14. linux c/C++编程支持设置进程优先级吗?
- 15. 编译C++程序在Linux上运行
- 16. 用Eclipse进行C编程(库之谜)
- 17. 在LINUX上使用C++进行LAPACK/LAPACKE ---编译,链接和运行?
- 18. 使用C中的多线程进行串口编程
- 19. 使用工具进行并行编程
- 20. 编写一个C/C++守护进程(Linux)
- 21. 使用C或C++编写Linux shell
- 22. Linux c编程参考
- 23. linux在蓝牙编程c
- 24. Linux C++ GUI编程工具
- 25. C编程在Linux中
- 26. 用C#编程通过OPC协议进行PLC编程
- 27. 在linux中混合使用汇编语言和C编程
- 28. Linux进程执行历史
- 29. Linux中的进程如何使用task_struct进行链接?
- 30. 寻找Linux的鼠标编程用C
C++或C#?这个问题没有道理。 – 2010-11-26 05:59:03
有人很可怕,非常困惑。 – 2010-11-26 05:59:34