# include <stdio.h>
int main( )
{
    FILE *fp;
    char ch,filename[10];
    scanf("%s",filename); /*读入磁盘文件名*/
    if((fp=fopen(filename,"w"))==NULL) /*建立新文件 */
    {
        printf("cannot open file\n"); /*建立新文件出错误信息*/
        exit(1); /*终止调用过程、关闭所有文件*/
    }
    ch=getchar( ); /*从键盘读入一个字符*/
    while(ch!=‘#‘) /*读到#时停止输入*/
    {
        fputc(ch,fp); /*将ch内字符写入fp指向的文件*/
        ch=getchar( );
    }
    fclose(fp); /*关闭fp所指向的文件*/
    if((fp=fopen(filename,"r"))==NULL) /*将filename 以‘r‘方式打开*/
    {
        printf("cannot open file\n");
        exit (1);
    }
    ch=fgetc(fp); /*从fp指向的文件读一个字符给ch变量 */
    while(ch!=EOF) /*读到文件结束符EOF时结束 */
    {
        putchar(ch);
        ch=fgetc(fp);
    }
    fclose(fp); /*关闭文件*/
    return 0;
}#include<stdio.h>
#define SIZE 4
struct student_type
{
    char name[10];
    int num;
    int age;
    char addr[15];
}stud[SIZE];
void save();/*保存输入数据到文件的函数声明*/
void output();/*输入文件内容的函数声明*/
/*在主函数main( )中的终端读入4个学生的数据,然后调用save( )函数。*/
int main()
{
    int i;
    for(i=0;i<SIZE;i++)
        scanf("%s%d%d%s",stud[i].name,&stud[i].num,&stud[i].age, stud[i].addr);
    save();
    printf("**********************************\n");
    printf("这是刚才写到文件里的内容\n");
    output();
    return 0;
}
/*save( )函数,将数据送到"stu_list"磁盘文件中去。*/
void save()
{
    FILE *fp;
    int i;
    if((fp=fopen("stu_list","wb"))==NULL)
    {
        printf("cannot open file\n");
        return;
    }
    /*函数sizeof 计算一个结构体student_type的变量长度29(10+2+2+15)字节*/
    for(i=0;i<SIZE;i++)
        if(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1)
            printf("file write error\n");
}
void output()
{
    int i;
    FILE *fp;
    fp=fopen("stu_list","rb");
    for(i=0;i<SIZE;i++)
    {
        fread(&stud[i],sizeof(struct student_type),1,fp);
        printf("%-10s%4d%4d %-15s\n",stud[i].name, stud[i].num,stud[i].age,stud[i].addr);
    }
}#include "stdio.h" 
void add_num( ),lookup( );
main( )
{ char choice;
do{choice=menu( ); 
switch(choice)
{ case ‘A‘:add_num( ); break;
case ‘L‘:lookup( ); break; }
}while(choice!=‘Q‘);
}
menu( )
{ char ch;
do{ 
printf("(A)dd,(L)ookup or (Q)uit:"); 
ch=tolower(getche( ));
printf("\n"); }
while(ch!=‘Q‘&&ch!=‘A‘&&ch!=‘L‘);
return ch;
}
void add_num( )
{ FILE * fp;
char name[80];
int a_code,exchg,num;
if((fp=fopen("phone","a"))==NULL)
{ printf("cannot open directory file\n"); exit(1); }
printf("enter name and number:");
fscanf(stdin,"%s%d%d%d",name,&a_code,&exchg,&num);
fscanf(stdin,"%*c"); 
fprintf(fp,"%s %d %d %d n",name,a_code,exchg,num);
fclose(fp);
}
void lookup( )
{ FILE *fp;
char name[80],name2[80];
int a_code,exchg,num;
if((fp=fopen("phone","r"))==NULL) 
{ printf("cannot open directory file\n"); exit(1); }
printf("name?");
gets(name);
while(!feof(fp)) 
{fscanf(fp,"%s%d%d%d",name2,&a_code,&exchg,&num);
if(!strcmp(name,name2)) 
{printf("%s: (%d)%d-%d\n",name,a_code,exchg,num); break; }
}
fclose(fp);
}
请运行程序,可以得到如下结果:
(A)dd,(L)ookup or (Q)uit:A Enter name and number: Liming 6789 1234 135
(A)dd,(L)ookup or (Q)uit:A Enter name and number: Lihung 5678 235 357
(A)dd,(L)ookup or (Q)uit:L name?Liming Liming:(6789)1234-135 
(A)dd,(L)ookup or (Q)uit:Q
getw(fp)
{FILE *fp;
char *s; int i;
s=&i;
s[0]=getc(fp); s[1]=getc(fp);
return(i);
}putw(i,fp)
{int i;
FILE *fp;
{char *s;
s=&i;
putc(s[0],fp);putc(s[1],fp);
return(i);
}if((fp=fopen(“test”,“r”))==NULL)
{printf(“cannot open this file\n”);
exit(1);
}
ch=fget(fp);
while(ch!=‘#’)
{ch=ch+4;
fputc(ch,fp);
ch=fget(fp);
}C语言新建文件,向文件中输入内容并读出文件内容,布布扣,bubuko.com
原文:http://blog.csdn.net/nyist327/article/details/22498409