fprintf不接受一个字符数组吗?

时间:2015-01-21 22:10:55

标签: c arrays gcc printf typecast-operator

我一直收到关于write_file的参数的错误/警告,该参数从整数开始生成一个没有强制转换的指针。

我试图将一个字符数组写入文件。我认为fprintf会收到一系列字符 这里是代码:(最后的错误信息)

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

char take_char();
void write_file(char ch[10]);

int main(){
    char ch;
    ch = take_char();
    write_file(ch);
    printf("successfully worked");
    return 0;
}

char take_char(){
    char ch;
    printf("Please input a character:\n");
    scanf("%s", &ch);
    return ch;
}

void write_file(char ch[10]){
    FILE *fp;
    fp = fopen("C:\\Users\\Jormak\\Desktop\\C_practicing\\Projects\\file_main.txt","w");

    if (fp == NULL){
        printf("FILE did not open.");
    }
    else{
        printf("Successfully opened the file");
    }

    fprintf(fp,ch[10]);
    fclose(fp);
}

错误讯息:

这就是错误:

main.c: In function ‘main’:
main.c:10:2: warning: passing argument 1 of ‘write_file’ makes pointer from     integer without a cast [enabled by default]
  write_file(ch[10]);
  ^
main.c:5:6: note: expected ‘char *’ but argument is of type ‘char’
 void write_file(char ch[10]);
      ^
main.c: In function ‘write_file’:
main.c:33:2: warning: passing argument 2 of ‘fprintf’ makes pointer from     integer without a cast [enabled by default]
  fprintf(fp,ch[10]);

^     在/usr/include/stdio.h:29:0中包含的文件中,                  来自main.c:1:     /usr/include/stdio.h:173:5:注意:预期'const char *'但参数类型为'char'      int _EXFUN(fprintf,(FILE * __ restrict,const char * __ restrict,...)      ^

0 个答案:

没有答案