二进制文件输入输出|C语言输出二进制文件的问题

㈠ C语言中FILE *fp是什么意思,文件流又是什么

FILE 是系统定义的一种结构类型的名称。

FILE *fp; 变量类型声明。声明 fp 是 FILE型指针,回用于指向FILE类型 (文件结构)。

文件流答– 排成一队,有先后次序的 输入(或输出)一串数据,驻留并通过 输入输出缓冲区,进出程序。如同水流般地流入或流出。它来自文件或写入文件。

(1)二进制文件输入输出扩展阅读:

在程序运行时,常常需要将一些数据(运行的最终结果或中间数据)输出到磁盘上存放起来,以后需要时再从磁盘中输入到计算机的内存。这就要用到磁盘文件。

C语言将文件看作是一个字符(字节)的序列,即一个一个字符(字节)的数据顺序组成。根据数据的组成形式,可分为ASCII文件和二进制文件。ASCII文件又称文本(text)文件,它的每一个字节可放一个ASCII码,代表一个字符。二进制文件是把内存中的数据按其在内存中的存储形式按原样输出到磁盘上存放。

㈡ c++二进制文件输入输出~

ofstream cout("你的文件名,带后缀");把你的数据转换为二进制数据cout<<二进制数据<<endl;

㈢ 文本文件和二进制文件的区别二进制文件是不是指图片、视频文件等

从文件编码的来方式来看,自文件可分为ascii码文件和二进制码文件两种。ascii文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ascii码。例如,数5678的存储形式为:asc码:00110101001101100011011100111000↓↓↓↓十进制码:5678共占用4个字节。ascii码文件可在屏幕上按字符显示,例如源程序文件就是ascii文件,用dos命令type可显示文件的内容。由于是按字符显示,因此能读懂文件内容。二进制文件是按二进制的编码方式来存放文件的。例如,数5678的存储形式为:0001011000101110只占二个字节。二进制文件虽然也可在屏幕上显示,但其内容无法读懂。c系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。因此也把这种文件称作“流式文件”。

㈣ 如何将二进制文件以十六进制输出

打印二进制数并没有现成的格式数值,只能自行编写函数打印。以下是一个打印二进制值的函数,通过位操作,逐位判断二进制值,并输出对应的值。默认高位0不输出。1234567891011121314151617void print_bin(int n){int l = sizeof(n)*8;//总位数。int i;if(i == 0){printf("0");return;}for(i = l-1; i >= 0; i –)//略去高位0.{if(n&(1<<i)) break;}for(;i>=0; i –)printf("%d", (n&(1<<i)) != 0);}

㈤ C语言输出二进制文件的问题

1、打开编译器,Ctrl+N新建一个文件;

㈥ c++二进制文件输入输出

手里没有编译器,所以没有办法调试,你试试吗。#include <stdio.h>main(){ int i,j; FILE *fp1; double xc,yc,zc; int flen; fp1=fopen("result.dat","wb") if(f!p1) exit(-1); for(i=0;i<10;i++) { for(j=0;j<10;j++) { xc=1.0; yc=2.0; zc=3.0; fwrite(&xc,sizeof(double),1,fp); fwrite(&yc,sizeof(double),1,fp); fwrite(&zc,sizeof(double),1,fp); } } fclose(fp); fp1=fopen("result.dat","rb") if(f!p1) exit(-1); fseek(fp1,0,0); flen=ftell(fp1); i=0; while(i<=flen) { fread(&xc,sizeof(double),1,fp); pintf("%f ",xc); i+=sizeof(double); } fclose(fp1); return 1;}

㈦ C\C++ 二进制文件输入输出。求大侠支招

如果打开文件是以a+的方式打开的,那么写数据只能以追加的方式写,rewind函数不起作用。你第一次写进去1,第二次写进去的3是接在1后面写进去的,并没有把原先写的1给覆盖掉。而每次读之前你又rewind了,所以读到n里面的数始终是文件中第一个写进去的整数。所以不管你写进去几,读出来的始终是第一次写进去的数字。

㈧ c++,二进制文件输出怎么写

代码已经改正,修改了几个地方,对照自己的代码看一下,如下:


#include<iostream>

#include<cmath>

#include<fstream>

#include<vector>

using namespace std;

class Book{

public:

char shmi[51];//不能用string,别问,我不知道

char zuzh[51];

double jige;

};

int main(){

int n;

cin>>n;

Book bk[n];//数组不香吗?

ofstream cout1("bookinfo.dat",ios::out|ios::binary);//

int i=0;

while(cin>>bk[i].shmi >>bk[i].zuzh >>bk[i].jige){

i++;

if(i>=n)break;

}

cout1.write((const char *)bk,sizeof(bk));

cout1.close() ;

/*==========以上内容应该实现了写入这些书的信息============*/

Book bk2[n];

ifstream cinn("bookinfo.dat",ios::in|ios::binary);//没错,ctrl+C+V过来的

cinn.read(( char *)bk2,sizeof(bk2));//这里不能写const

for(int i=0;i<n;i++){//哎,一不小心又写了for了

cout<<bk2[i].shmi <<" "<<bk2[i].zuzh <<" "<<bk2[i].jige <<endl;

}

cinn.close() ;

return 0;

}


运行截图:

㈨ 二进制文件中,如何操作输入和输出数据

摘要您好,很高兴为您解答问题

㈩ C++二进制写入和读入怎么实现呢

#include <fstream>写二进制文件应该使用ofstream类,文件的打开模式一定要是 binary,如果传入的不是 binary, 文件将以ASCII方式打开。下面是示例代码,用于写入文件。std::ofstream fout("a.dat", std::ios::binary);int nNum = 20;std::string str("Hello, world");fout.write((char*)&nNum, sizeof(int));fout.write(str.c_str(), sizeof(char) * (str.size()));fout.close();而写文本文件则比较简单,如下:std::ofstream fout("b.dat");int nNum = 20;std::string str("Hello, world");fout << nNum <<","<< str << std::endl;fout.close();读二进制文件读取二进制文件可以使用ifstream 类来进行,文件的打开模式一定要是 binary,如果传入的不是 binary, 文件将以ASCII方式打开。下面是示例代码:std::ifstream fin("a.dat", std::ios::binary);int nNum;char szBuf[256] = {0};fin.read((char*)&nNum, sizeof(int));fin.read(szBuf, sizeof(char) * 256);std::cout <<"int = "<< nNum << std::endl;std::cout <<"str = "<< szBuf << std::endl;fin.close();


赞 (0)