由买买提看人间百态

topics

全部话题 - 话题: tempprice
(共0页)
l******0
发帖数: 313
1
来自主题: JobHunting版 - C的fscanf的问题 (转载)
【 以下文字转载自 Programming 讨论区 】
发信人: love1010 (学会move on), 信区: Programming
标 题: C的fscanf的问题
发信站: BBS 未名空间站 (Sat Aug 18 00:31:27 2012, 美东)
需要从一个文件里读数据写入一些变量里
文件是这样的格式 GOOG|588.88
需要将GOOG写入一个string里,然后将588.88写入一个float number里,我写了以下
code:
char tempprice[10];
char ticker[10];
fscanf(fr,"%[^|]|%[^\n]\n",ticker,tempprice);
float stockprice = stof(tempprice); //将string变成float
上面的code, ticker会正确得到GOOG,但是tempprice却无法得到588.88,请问哪里出
错了?
另外,有更优化的方法么
非常感谢
l******0
发帖数: 313
2
来自主题: Programming版 - C的fscanf的问题
需要从一个文件里读数据写入一些变量里
文件是这样的格式 GOOG|588.88
需要将GOOG写入一个string里,然后将588.88写入一个float number里,我写了以下
code:
char tempprice[10];
char ticker[10];
fscanf(fr,"%[^|]|%[^\n]\n",ticker,tempprice);
float stockprice = stof(tempprice); //将string变成float
上面的code, ticker会正确得到GOOG,但是tempprice却无法得到588.88,请问哪里出
错了?
另外,有更优化的方法么
非常感谢
l****c
发帖数: 838
3
来自主题: JobHunting版 - C的fscanf的问题 (转载)
You should read in the string and parse.
You don't know how long the first part string is or how long the number is.
So if you define:
char tempprice[10];
char ticker[10];
You have the risk of buffer overflow.
Here is my solution. I debug it as I wrote it, so it is not optimized.
it is pure C. You can get result with 2 lines of perl or python code
============================
#include
#include
#include
int main()
{
char *str = "GOOD|89.34";
char *ptoken, *... 阅读全帖
(共0页)