我不能写一个文件

时间:2015-07-17 14:38:55

标签: c file dynamic printf

我正在尝试第一次用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;
}

1 个答案:

答案 0 :(得分:4)

 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, ...)