文件类型
1. 文本文件
2. 二进制文件
区别文本文件是以ascll码形式存储的
内存是以二进制样存储的
文件打开和关闭
Fopen()
形式
File *fp;
Fp=fopen(“文件名”,“大开方式”);
Fopen()
检查操作是否成功
若该该函数值返回值为0,就说明文件打开失败,若打开成功则返回非0值就说明文件打开成功(NULL=0)
Fclose()
形式
Fclose(fp)
若关闭成功返回值为0若失败则为-1.
文件结束检查--------feof()函数
形式
Feof(文件指针)
到结尾为返回值1如果没到结尾为返回值0
应用一般形式
If(!Feof(fp))
C=fgetc(fp);
返回值为0就继续运行。 
返回值为1就结束。
文件的顺序读写
1.字符输入和输出函数(fgetc、fputc)(文本文件)(区别文本文件是以ascll码形式存储的
2.字符串输入和输出函数(fgets、fputs)(文本文件)(区别文本文件是以ascll码形式存储的
3.格式化输入输出函数(fscanf、fprintf)(文本文件)(注意:输入时要将ascii码转换为二进制形式,在输出时要将二进制形式转换成字符)
4.数据块输入输出函数(freed、fwrite)
1使用方法
Fgetc()
形式
Char ch;
Ch=fgetc(文件指针)
函数结尾标志EOF或-1。
在这就是ascll码的值赋给变量ch
例子
Ch=fgetc(fp)
While(ch!=EOF)
{
Putchar(ch);
Ch=fgetc(fp);
}
Fputc(字符,文件指针)
#include<stdio.h>
#include<stdlib.h>
void main()
{
    FILE *fp1,*fp2;
    char c;
        if((fp1=fopen("","w"))==NULL)
        {
            printf("不能打开文件\n");
            exit(0);
        }
        printf("输入字符\n");
        while((c=getchar())!='\n')  while()语句后面假如没有花括号,往后读一句。
            fputc(c,fp1);
        fclose(fp1);
        if((fp2=fopen("","r"))==NULL)
        {
            printf("不能打开文件\n");
            exit(0);
           
        }
        printf("输出字符\n");
        while((c=fgetc(fp2))!=EOF)
            putchar(c);
        printf("\n");
        fclose(fp2);
}
2Fgets()
Fgets(字符串指针,字符个数n,文件指针);
若函数调用成功则返回字符串的首地址,若读到文件结尾处或调用失败,则返回常量NU7LL;
字符串输出
Fputs(字符串,文件指针)
格式输入
Fprintf(文件指针,格式串,输出项表)
执行成功则返回字节数;否者返回复数;
二进制文件的输入和输出----------数据块读写
Fwriltebufsizecount,文件指针)
Freadbufsizecount,文件指针)
如有一个整数10000 ASCII码形式输出与字符一一对应,一个字节代表一个字符

存储形式为

00110001--00110000--00110000--00110000--00110000
    1        0          0        0        0

1表示的是字符“1”,其ASCII码为49(D),也就是110001(B)
0表示的是字符“0”,其ASCII码为48(D),也就是110000(B)

所以10000用二进制表示的话是:10011100010000
ASCII码表示的话是:00110001--00110000--00110000--00110000--00110000
二进制是一种非常古老的进位制,由于在现代被用于电子计算机中,而旧貌换新颜变得身价倍增起来。
在现实生活和记数器中,如果表示数的器件只有两种状态,如电灯的,开关的。一种状态表示数码0,另一种状态表示数码111应该等于2,因为没有数码2,只能向上一个数位进一,就是采用满二进一的原则,这和十进制是采用满十进一原则完全相同。

1110101111111001001101

101111011011111111+=1000……

可见二进制10表示二,100表示四,1000表示八,10000表示十六,……

二进制同样是位值制。同一个数码1,在不同数位上表示的数值是不同的。如11111,从右往左数,第一位的1就是一,第二位的1表示二,第三位的1表示四,第四位的1表示八,第五位的1表示十六。用大家熟悉的十进制说明这个二进制数的含意,有以下关系式

11111)(二进制)=1×241×231×221×21(十进制)

一个二进制整数,从右边第一位起,各位的计数单位分别是1222232nfgets和fgetc的区别

计算机内部之所以采用二进制,其主要原因是二进制具有以下优点:
(1)技术上容易实现。用双稳态电路表示二进制数字01是很容易的事情。
(2)可靠性高。二进制中只使用01两个数字,传输和处理时不易出错,因而可以保障计算机具有很高的可靠性。
(3)运算规则简单。与十进制数相比,二进制数的运算规则要简单得多,这不仅可以使运算
的结构得到简化,而且有利于提高运算速度
(4)与逻辑量相吻合。二进制数01正好与逻辑量相对应,因此用二进制数表示二值逻辑显得十分自然。
(5)二进制数与十进制数之间的转换相当容易。人们使用计算机时可以仍然使用自己所习惯的十进制数,而计算机将其自动转换成二进制数存储和处理,输出处理结果时又将二进制数自动转换成十进制数,这给工作带来极大的方便。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。