try.c:8:错误:初始化中不兼容的类型 - c

时间:2016-02-18 15:39:58

标签: c types initialization

我正在尝试构建一个读取文件并输入字符串的简单c, 但我在编译时收到此错误:

try.c:8: error: incompatible types in initialization

这是代码:

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

int main()
{
    FILE *try = fopen("C:\\Users\\User\\Desktop\\try1.txt", "r");

    char *string = *try;

    printf("%s\n", string);
    printf("%s\n", try);


    system("PAUSE");
    return 0;
}

我该如何解决这个问题?感谢

1 个答案:

答案 0 :(得分:0)

关于这一行:

char *string = *try;

问题是发布的代码正在尝试将指向FILE结构的指针指定给char指针。

通常,从fopen()返回的值仅适用于read(),write(),fclose()fprintf()fwrite(),fread(),fscanf()等函数中的参数,除非编写使用设备驱动程序等的非常低级代码,否则FILE指针的实际内容是没有意义的

发布的代码正在尝试使用&#39;%s&#39;来打印try的内容。格式说明符。那样不行。建议:

printf( "%p is where 'try' points\n", try );

as&#39;%p&#39;用于打印地址。

try点的内容需要使用FILE结构中的字段,可能逐个打印这些字段