我正在尝试将字符串(const char* argv[]
)转换为double
精度浮点数:
int main(const int argc, const char *argv[]) {
int i;
double numbers[argc - 1];
for(i = 1; i < argc; i += 1) {
/* -- Convert each argv into a double and put it in `number` */
}
/* ... */
return 0;
}
任何人都可以帮助我吗?感谢
答案 0 :(得分:9)
sscanf(argv[i], "%lf", numbers+i);
numbers[i] = strtod(argv[i], NULL);
顺便说一句,
for(i = 1; i < argc, i += 1) {
//-----------------^ should be a semicolon (;)
- &GT;
答案 1 :(得分:1)
答案 2 :(得分:1)
您可以使用stdlib.h中定义的strtod
理论上,scanf系列函数应该更有效,尽管我认为它不可测量。
答案 3 :(得分:0)
您还没有说明const char*
可能采用的格式。假设它们是“1.23”之类的文本字符串,那么sscanf(argv[i], "%lf", &numbers[i-1])
应该完成这项工作。