请帮我解决c编程中的这个错误

时间:2015-03-29 16:36:46

标签: c visual-studio

int main()
{
    char c,a;
    FILE *fptr,*fp2;
    fptr = fopen("program.txt", "w");

    printf("Enter a sentence:\n");
    gets(c);
    fprintf(fptr,"%s",c);
    fclose(fptr);
    fptr = fopen("program.txt", "r");
    fp2 = fopen("test.txt", "w");

    do
    {
        a = fgetc(fptr);
        fputc(a, fp2);
    }
    while(a != EOF);
}

错误是:

error C2664: 'gets':cannot convert parameter 1 from 'char' to 'char*'

1 个答案:

答案 0 :(得分:1)

  

错误:错误C2664:'获取':无法将参数1从'char'转换为'char *'

错误是非常自我解释的。它说的是gets()提供的参数应该是char *,但您提供的所有参数都是char类型。

根据man pagegets()的语法是

  

char * gets(char * s);

因此,gets()的参数应该是char *,而不是char

您需要将代码中的c更改为

char c[64] = {0};

注意:使用gets()非常糟糕。请改用fgets()