天天看点

c写文件

方法一:

#include<stdio.h>

main()

{

  FILE *fp;

  int i=0;

  char *s="Am I right?";

  fp=fopen("c://text.txt","wr");

  while(*s)

  { printf("%c",*s);

    fseek(fp,i++,SEEK_SET);

    fprintf(fp,"%c",*s++);         //++优先级高于*

  }

  fclose(fp);

  getchar();

}

方法二:

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

main()

{

  FILE  *fp;

  char  ch;

  fp = fopen("F://file.txt","wb");   //写的方式打开文件

  if( fp == NULL)

  {  printf("can't open file.txt/n");  exit(1); }  //打开文件失败则退出

  scanf("%c",&ch);

  while(ch != '*')          //输入字符*则退出

  {

    printf("%c/n",ch);

    fputc(ch,fp);           //将ch写入你打开的文件

    fflush(stdin);          //清除输入缓冲区

    scanf("%c",&ch);        //继续输入一个字符

  }

  printf("input over!/n");

  getch();

}

方法三:

#include <stdio.h>

#include <stdarg.h>

void xprintf(const char *pszFormat, ...)

{

 char buf[1024] = {0};

 FILE *cfPtr = fopen("1.log", "a");

 va_list arg_ptr;

 va_start(arg_ptr, pszFormat); // void va_start( va_list arg_ptr , prev_param );   (ANSI version)

 vsprintf(buf, pszFormat, arg_ptr); //Write formatted output using a pointer to a list of arguments. //int vsprintf( char * buffer , const char * format , va_list argptr ); 

 va_end(arg_ptr);

 printf("%s", buf);

 if (cfPtr!=NULL)

 {

  fprintf(cfPtr, "%s", buf);

  fclose(cfPtr);

 }

}

int main(int argc, char *argv[])

{

 xprintf("%-10d%s/n", 99, "hello world");

 return 0;

}

方法四:

void WriteDat(void)

{

 int i;

 char xx[2][23]={"You He Me","I am a student."};//测试数据.

 FILE *fp;

 fp=fopen("OUT6.txt","a+");

 for(i=0;i<2;i++)

 {

  printf("%s/n",xx[i]);//运行时在屏幕上显示

  fprintf(fp,"%s/n",xx[i]);//写入文件,

 }

 fclose(fp);

}

方法五:

手动可以用重定向

a.out > out.txt

程序实现可以用fprintf

#include<stdio.h>

main()

{

  FILE *fp;

  int i=0;

  char *s="Am I right?";

  fp=fopen("c://text.txt","wr");

  while(*s)

  { printf("%c",*s);

    fseek(fp,i++,SEEK_SET);

    fprintf(fp,"%c",*s);

    s++;

  }

  fclose(fp);

  getchar();

}