2016-02-18 53 views
-5

我想建立一个简单的C读取文件并进入到一个字符串, 但我在编译时收到此错误:try.c:8:错误:不兼容的类型在初始化 - ç

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

类型的'的内容* try'当然'FILE',不'字符*'。你想'fread()'或'fgets()'什么的。 –

+0

'char * string = NULL; size_t bufsize = 0; ssize_t slen = getline(&string,&bufsize,try);' – EOF

+0

尝试使用函数,如'fgets'或'fscanf'。 – ameyCU

回答

0

对此行:

char *string = *try; 

问题是张贴代码试图一个指向文件的指针结构分配给一个字符指针。

一般而言,从fopen()返回的值仅对read(),write(),fclose(),fprintf(),fwrite(),fread(),fscanf()等函数中的参数有效,实际内容的FILE指针是没有意义的,除非编写与设备驱动程序非常低级代码工作等

发布的代码试图打印try使用'%s'格式说明符的内容。这是行不通的。建议:

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

as'%p'用于打印地址。

其中try点需要使用来自文件结构中的字段,或许打印这些字段逐个

相关问题