汉扬编程 编程大纲 用C语言完成删除文件某些内容

用C语言完成删除文件某些内容

  看看如何 随便瞎写的 能运行#include
#define MAXLEN 1000000char buf[MAXLEN];
int main(int argc, char *argv[])
{
  int i, c;
  int len;
  i = atoi(argv[2]);             //把字符串转成长整形数
  c = atoi(argv[4]);
 
  FILE *fp1, *fp2;
  fp1 = fopen(argv[5], \”rb\”);  
  fp2 = fopen(argv[6], \”wb\”);  fseek(fp1, 0, SEEK_END);
  len = ftell(fp1);
  fseek(fp1, 0, SEEK_SET); if(i > len || i   {
    printf(\”error

\”);
    return 0;
  }
 
  if( i != 0)
  {
    fread(buf, sizeof(char), i, fp1);
    fwrite(buf, sizeof(char), i, fp2);
  }  if( i c   {
 fseek(fp1, c, SEEK_CUR);
    fread(buf, sizeof(char), len – i -c, fp1);
    fwrite(buf, sizeof(char), len -i -c, fp2);
  }
 
  fclose(fp1);
  fclose(fp2);
  return 0;
}

  

字,字节,位是怎么分的?

位:在数字电路和电脑技术中采用二进制,代码只有“0”和“1”,其中无论是 “0”或是“1”在CPU中都是 一“位”。

一个字节(Byte)=8个二进制位(bit),这是微机中每个存储器地址(存储单元)的基本单位。

字(Word)有两个概念。一个是处理器的字长,指某个计算机能够一次处理的数据位数,例如8085的机器字长是8位、8086的机器字长是16位、80386~Pentium 4的机器字长为32位。另一个字的概念是微机原理、汇编语言课程中进行汇编语言程序设计中采用的数据位数,为16位、即2个字节。

1字节(byte)=8位(bit) 1字=2字节 双字=2字

1kb=1024b,1MB=1024KB

1GB=1024MB

都是采用二进制存储的,最小单位就是位(bit)了,1字节(byte)=8位(bit),一个汉字占用两个字节,即16位。然后1kb=1024b,1MB=1024KB,1GB=1024MB,是以2的10字方进位的

按照二进制计算,位是最小的单位,只能表示0和1两个数,一个字节由8个二进制位组成,可以表示0-25535范围内的整数,一个字一般指两个字节,即16个二进制位.

c语言的数据结构的存储 问题…

  首先说下,你的程序定义了2个T,是重复定义,编译不能通过的,把共用体名定义成其它的(例如T2)

接下来说说共用体类型:
共用体类型和结构体类似,都是由不同的数据类型所组成的,区别是结构体类型的变量是分别存放的,而共用体类型的变量是存放在同一段内存空间的。
  这段内存空间的大小由共用体中成员的类型决定,占据内存空间最大的成员所占的字节数就是共用体变量所占的字节数。(摘自《Visual C 开发技术大全》P53)

由这段话可以看出你那个程序里的共用体所占空间应该和double型的一样即8字节, 加上int型的4字节,答案是12字节,选C

不过不知道为什么,用我的VC 6。
  0写的这个程序:

#include
struct T {
int w;
union T2 { char c; int i; double d; } U;
};
void main()
{
coutcout}

输出:
4 8
16

说T类型所占空间是16,不知道为什么,知道的请解释下。
  

不过你的答案里没有16这个选项,所以可以不用考虑我后面说的。

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/mianfei/5882.html

C和Java有什么根本的区别

c语言已知一组数据,要求逆序存放

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部