C-从命令行参数获取fread参数

C-从命令行参数获取fread参数,c,C,现在我的fread设置如下。我想将bytesize更改为命令行参数 fread(buffer, filelen, bytesize, fileptr); 我知道要求的类型是“尺寸”。因此,如果我使用: fread(buffer, filelen, (size_t)argv[1], fileptr); argv包含字符串数组,而不是整数。您离正确的方法不远,因为您需要将此字符串转换为整数,但您做得不对。C是一种简单类型转换不解析整数的语言。改为检查,可能会有所帮助。您可以这样做 int byt

现在我的
fread
设置如下。我想将
bytesize
更改为命令行参数

fread(buffer, filelen, bytesize, fileptr);
我知道要求的类型是“尺寸”。因此,如果我使用:

fread(buffer, filelen, (size_t)argv[1], fileptr);

argv
包含字符串数组,而不是整数。您离正确的方法不远,因为您需要将此字符串转换为整数,但您做得不对。C是一种简单类型转换不解析整数的语言。改为检查,可能会有所帮助。

您可以这样做

int bytesize = atoi(argv[1]);
fread(buffer, filelen, bytesize, fileptr);

argv[1]
转换为整数,并将其传递给
fread()

理论上,您应该使用
strtoul()
或其左右的值,但您的大小不太可能溢出适合
int
的值。