[英]Reading all double number from string which length is unknown
我有一个字符串,但是我不知道它的长度,因为我从文件中读取。 (我必须这样做,所以请不要以其他方式告诉我)我想从中读取所有双精度数字,但是我不知道它有多少数字。 我想使用sscanf,但是它不起作用,它总是读取第一个数字。 想法?
fgets()
从文件中读取行。 strtok()
以空格作为分隔符strtok()
将行分成令牌。 strtod()
将字符串转换为double 这样的事情会起作用。
const char *p = str;
double d;
int n;
while (sscanf(p,"%lf%n",&d,&n) == 1) {
// do something with d
p += n;
}
sscanf出现问题的原因是因为它不会自动移动提供的缓冲区,您必须询问它已读取了多少个字符( %n
)并自己移动了它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.