我正在尝试第一次用C编写文件,但是我知道了,但我不知道为什么。变量nombre是我创建的文件的名称,然后我想在该文件中写入字符串testo的内容,但是我总是遇到错误:

process return -1073741819

char* inserisci (char*);

int main() {
    char *nombre=NULL,letra;
    char*testo=NULL;

    int i=0;
    printf("Type file name: ");
    nombre=malloc(sizeof(char));
    letra=getche();
    *(nombre+i)=letra;
    while(letra!='\r'){
        i++;
        nombre=realloc(nombre,(i+1)*sizeof(char));
        letra=getche();
        *(nombre+i)=letra;
    }
    *(nombre+i)='\0';
    printf("\n");
    testo=inserisci(testo);
    fopen(nombre,"w+");
    fprintf(nombre,"%s",testo);
    return 0;
}

char* inserisci (char* testo){
    char letra;
    int i=0;
    testo=malloc(sizeof(char));
    letra=getche();
    *(testo+i)=letra;
    while(letra!='\r'){
        i++;
        testo=realloc(testo,(i+1)*sizeof(char));
        letra=getche();
        *(testo+i)=letra;
    }
    *(testo+i)='\0';
    return testo;
}

最佳答案

 fprintf(nombre,"%s",testo);
            ^here file pointer is needed not the char pointer containing files path or name.


声明一个文件指针

         FILE *fp;
         fp=fopen(nombre,"w+');
         fprintf(fp,"%s",testo);


这是fprintf的格式

      int fprintf(FILE *stream, const char *format, ...)

10-01 19:30