gpt4 book ai didi

c - 调整大小(更多)我是否正确解析 float ? (使用 sscanf)

转载 作者:行者123 更新时间:2023-11-30 19:30:04 24 4
gpt4 key购买 nike

我最近完成了“减少大小调整”,并决定继续进行“更多调整”。它要求我做的第一件事是能够使用 atofsscanf 解析两个 float 。经过一番研究后,我想出了使用其中之一来获取 float ,但是如果我尝试将大小调整为 2.5,例如我会收到此错误:

*** Error in `./resize': corrupted size vs. prev_size: 0x0000000002100480 ***

已中止,这是我编写的用于通过命令行解析用户的 float 的代码,只是想在尝试继续之前知道它是否正确。

int main(int argc, char *argv[])
{
// ensure proper usage
if (argc != 4)
{
fprintf(stderr, "Usage: copy infile outfile\n");
return 1;
}

// remember filenames
float n = 0;
sscanf(argv[1], "%f", &n);
char *infile = argv[2];
char *outfile = argv[3];

// prints valve of f for debugging
printf("f = %f.\n", n);

return 0;
}

最佳答案

您正确使用了 sscanf。如果您对 sscanf 感到困惑,您应该查看 strtof()

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
// ensure proper usage
if (argc != 4)
{
fprintf(stderr, "Usage: copy infile outfile\n");
return 1;
}

// remember filenames
float n = 0;
char *infile = argv[2];
char *outfile = argv[3];

// prints valve of f for debugging
n = strtof(argv[1], NULL);
printf("%f\n", n);
}

您仍然应该学习如何使用 sscanf(man 是您的 friend )来进行更复杂的解析操作。但对于单一类型解析,请始终使用 strtoxxx() 系列函数。

关于c - 调整大小(更多)我是否正确解析 float ? (使用 sscanf),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51674240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com