C 中函数 fgets() 不必再次定义参数?

问题描述 投票:0回答:1

在 C 编程中,当我们为 fgets 函数传递参数 *pointer_for_string、sizeof_string 和 *stream 时,我们不必将函数的返回值写回到之前定义/给出的 *pointer_for_array 中,这是否正确? fgets 的参数。

为什么会是一个错误?

char string_ofsize_ten[10];
string_ofsize_ten = fgets(string_ofsize_ten, 10, stdin);
c fgets
1个回答
0
投票

事实上,函数 fgets 返回传递给它的指针作为第一个参数。但是您不能将指针分配给数组,因为它是在代码片段中编写的

char string_ofsize_ten[10];
string_ofsize_ten = fgets(string_ofsize_ten, 10, stdin);

数组是不可修改的左值。

注意上面函数

fgets
的调用中,用作参数的数组被隐式转换为指向其第一个参数的指针。

返回的指针用于检查 fgets 调用是否成功,例如

whle ( fgets(string_ofsize_ten, sizeof( string_ofsize_ten ), stdin) !=  NULL )
{
     string_ofsize_ten[ strcspn( string_ofsize_ten, "\n" ) ] = '\0';
     puts( string_ofsize_ten );
}
© www.soinside.com 2019 - 2024. All rights reserved.