我有一个无法解决的问题。 我收到错误:错误:非对象类型“int ()”不可分配 读= b; 和警告:警告:不兼容的指针到整数转换从结果类型为“int”的函数返回“int ()”[-Wint-conversion] 返回已读;
我想将值 b 返回到 main,我想知道为什么它不起作用。我希望你可以帮助我。 代码如下:
#include <stdio.h>
int read()
{
FILE *fptr;
char b;
fptr = fopen("./chat.txt","r");
if(fptr == NULL)
{
printf("Something went wrong");
}
b = fgetc(fptr);
while(b != EOF)
{
printf ("%c", b);
b = fgetc(fptr);
}
fclose(fptr);
read = b;
return read;
}
最佳答案
这个错误是完全正确的。 这行代码:
read = b;
尝试将 b
(一个 char
)的值分配给 read
(一个返回 int 的函数)
.
删除该行并返回b
。编译器将为您将 char
提升为 int
。或者,更好的是,将 b
更改为 int
,因为您可能不知道(但正如上面一些程序员指出的那样),fgetc
返回一个int
。
关于c - 为什么我会收到此错误和警告?错误和警告在描述中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55246835/