常用的数据类型有字符型(char 型)、短整型(short 型)、整型(int 型)、长整型(long 型)、拓展长整型(long long 型)、单精度浮点型(float 型)、双精度浮点型(double 型)。问题围绕着数据类型与二进制文件展开。现有一个二进制文件,文件名为dict.dic,生成这个文件的C语言代码大概是这样的: 变量如下: char a,aa[5];//注意这里数组aa为正常使用的字符串,所以会包含字符'\0',它不需要输出 short b,bb[5]; int c,cc[5]; long d,dd[5]; long long e,ee[5]; float g,gg[5]; double h,hh[5]; int i ; 写入的代码段是这样: fwrite(&a,sizeof(a),1,fp); fwrite(&b,sizeof(b),1,fp); fwrite(&c,sizeof(c),1,fp); fwrite(&d,sizeof(d),1,fp); fwrite(&e,sizeof(e),1,fp); fwrite(&g,sizeof(g),1,fp); fwrite(&h,sizeof(h),1,fp); fwrite(aa,sizeof(a),5,fp); fwrite(bb,sizeof(b),5,fp); fwrite(cc,sizeof(c),5,fp); fwrite(dd,sizeof(d),5,fp); fwrite(ee,sizeof(e),5,fp); fwrite(gg,sizeof(g),5,fp); fwrite(hh,sizeof(h),5,fp); 这个代码段被连续执行了5次。当然每次写入的数据是不同的。 你的任务是从dict.dic中按照输入的顺序,读出7种单独变量,分别存到对应类型的变量中,假设为a、b、c、d、e、g、h。再从该文件中读出7个长度为5的数组,分别存到aa[5]、bb[5]、cc[5]、dd[5]、ee[5]、gg[5]、hh[5]中。最后将它们的值全部输出到屏幕上。 注意,所有变量均不会超过其存储范围。 内容提示:在本题对文件的操作内容中,会用到C语言文件操作函数,其打开文件的方式,如下: 1.FILE *fp=fopen("file.dat","rb");//"rb"为以只读方式打开二进制文件。 2.fread的样例代码: #include<stdio.h> int main() { int c,cc[5]={0}; FILE *fp=fopen("file.dat","rb"); fread(&c,sizeof(int),1,fp); //从fp指向的文件中读出一个整型变量 fread(cc,sizeof(int),5,fp); //从fp指向的文件中读出一个长度为5的整型数组。 fclose(fp); return 0; }
时间: 2023-05-24 13:05:34 浏览: 275
&a, sizeof(char), 1, fp);
fwrite(bb, sizeof(short), 5, fp);
fwrite(cc, sizeof(int), 5, fp);
fwrite(dd, sizeof(long), 5, fp);
fwrite(ee, sizeof(long long), 5, fp);
fwrite(gg, sizeof(float), 5, fp);
fwrite(hh, sizeof(double), 5, fp);
这段代码使用了fwrite函数,将变量中的数据以二进制形式写入到名为dict.dic的文件中。写入时按照变量类型的长度、个数依次写入,注意字符型写入1个字节,短整型写入2个字节,整型写入4个字节,长整型写入8个字节,拓展长整型写入8个字节,单精度浮点型写入4个字节,双精度浮点型写入8个字节。因此,dict.dic文件中存储了按照顺序包含了所有变量的二进制数据。
相关问题
Java 语言中的基本数据类型包括 A.整型、实型、逻辑型 B.整型、实型、字符型 C.整型、逻辑型、字符型 D.整型、实型、逻辑型、字符型
答案是 B. Java 语言中的基本数据类型包括整型、实型和字符型。其中整型包括 byte、short、int 和 long,实型包括 float 和 double,字符型包括 char。逻辑型不是 Java 语言中的基本数据类型,它是通过布尔运算(&&、||、!)和关系运算(>、<、==、!=等)得到的结果。
根据提示,在右侧编辑器中的 Begin-End 之间补充代码。定义3个有符号整型变量,分别为短整型、基本整型、长整型;定义3个无符号整型变量,分别为短整型、基本整型、长整型;定义3个浮点型变量,分别为单精度、双精度、长双精度;定义2个字符型变量,分别为有符号字符型,和无符号字符型;从键盘 ( 控制台 ) 获取这11个变量的值,并输出,其中长双精度浮点数保留3位小数。希望通过程序的编写和执行深入体会不同数据类型在定义、输入输出、取值范围等方面的异同。输入输出格式详见测试说明。
下面是代码:
```c++
#include <iostream>
using namespace std;
int main() {
short s;
int i;
long l;
unsigned short us;
unsigned int ui;
unsigned long ul;
float f;
double d;
long double ld;
char c;
unsigned char uc;
cout << "请输入一个 short 型整数:";
cin >> s;
cout << "short 型整数为:" << s << endl;
cout << "请输入一个 int 型整数:";
cin >> i;
cout << "int 型整数为:" << i << endl;
cout << "请输入一个 long 型整数:";
cin >> l;
cout << "long 型整数为:" << l << endl;
cout << "请输入一个 unsigned short 型整数:";
cin >> us;
cout << "unsigned short 型整数为:" << us << endl;
cout << "请输入一个 unsigned int 型整数:";
cin >> ui;
cout << "unsigned int 型整数为:" << ui << endl;
cout << "请输入一个 unsigned long 型整数:";
cin >> ul;
cout << "unsigned long 型整数为:" << ul << endl;
cout << "请输入一个 float 型浮点数:";
cin >> f;
cout << "float 型浮点数为:" << fixed << setprecision(3) << f << endl;
cout << "请输入一个 double 型浮点数:";
cin >> d;
cout << "double 型浮点数为:" << fixed << setprecision(3) << d << endl;
cout << "请输入一个 long double 型浮点数:";
cin >> ld;
cout << "long double 型浮点数为:" << fixed << setprecision(3) << ld << endl;
cout << "请输入一个 char 型字符:";
cin >> c;
cout << "char 型字符为:" << c << endl;
cout << "请输入一个 unsigned char 型字符:";
cin >> uc;
cout << "unsigned char 型字符为:" << uc << endl;
return 0;
}
```
测试说明:
输入格式:
- short 型整数
- int 型整数
- long 型整数
- unsigned short 型整数
- unsigned int 型整数
- unsigned long 型整数
- float 型浮点数
- double 型浮点数
- long double 型浮点数
- char 型字符
- unsigned char 型字符
输出格式:
- short 型整数为:s
- int 型整数为:i
- long 型整数为:l
- unsigned short 型整数为:us
- unsigned int 型整数为:ui
- unsigned long 型整数为:ul
- float 型浮点数为:f
- double 型浮点数为:d
- long double 型浮点数为:ld
- char 型字符为:c
- unsigned char 型字符为:uc
其中,s、i、l、us、ui、ul、f、d、ld、c、uc 分别为输入的变量值。
阅读全文