1 每次从文件中读写1个字符
1.1 读一个字符 getc(fp)
从哪里读,fp
读到哪里 ch (这里就是缓冲buff)
1.2 写一个字符putc(ch, fp)
从哪里获取 ch
写到哪里 fp
1 (fp = fopen(argv[1], "r") // 首先打开一个文件 , 这里以命令行输入文件名为例 ,只读模式
2 while ((ch = getc(fp)) != EOF) 这里用getc(fp)每次读取一个字符。当读完一个字符赋值给ch后,文件指针往后走一格。可以一直到末尾
3 putc(ch, stdout); // 与 putchar(ch)相同 getc(stdin)与getchar()相同
2,每次从文件读写1个字符串
2.1读1个字符串(单词,以空格 换行符为边界)
从哪里读,例如从标准输入stdin,保存到哪里,words字符串数组
2.2写1个字符串
从哪里获取,从words字符串数组,写到哪里?写到fp。
char words[MAX]
fp = fopen("wordy", "a+") //文件wordy打开
fscanf(stdin, "%40s", words)//从标准输入获取字符串,并保存在words字符串数组中
fprintf(fp, "%s\n", words) //然后将buff——words中的字符串通过fprintf写入文件流fp
fscanf(fp, "%s", words)然后从文件流fp中再读取,验证。
3.每次从文件读写1行
3.1读一行 从哪里读 ,fp 读到哪里 buf
3.2写一行 从哪里获取 buf, 写到哪里fp
fgets(buf, STLEN, fp); //读取一行 直到 '\n' 或者 STLEN - 1 或者 EOF 为止
fputs(buf, fp)
4.二进制读写
前面都是字符的输入输出。当碰到例如数据12345时,前面的输入输出都是以字符‘1’,‘2’,‘3’,‘4’,‘5’的格式保存(5个char类型,5个8位),而如何保存12345的数据格式呢(1个16位二进制表示的)
fwrite(temp, sizeof(char), bytes, dest) //写入bytes个char大小的数据块,从temp写到dest
fread(&value, sizeof(double), 1, iofile)//读取1个double大小的数据块,从iofile处写到value的地址