⑴ c语言中流是什么意思
C语言的I/O系统为用户提供了一个接口,该接口与实际的存取设备无关。只是设备的一个抽象表示形式。这个抽象的接口称为流,实际的设备称为文件。
C文件系统可以与各种设备一起使用,如打印机、硬盘、终端等,缓冲文件系统可以将每个设备转换成逻辑设备,即所谓的流。所有的流工作方式类似,所以很容易操作不同的设备。流有2种类型:文本流和二进制流。
文本流是一系列字符,可以由多行构成,每行由一个换行符终止。
二进制流是一系列字节,并与外部设备上的字节一一对应。
⑵ 有转换类似C语言结构体的对象为字节流的API么
是什么样的转换?
可以参考地址、指针
~~~~~~~~~~~
⑶ C语言中流是什么意思
流是磁盘或其它外围设备中存储的数据的源点或终点。”。这是在《C程序设计语言》上的原话。
据我的理解,流主要是指一种逻辑上的概念,它提供或存储数据。产生数据的叫输入流,消耗数据的叫输出流。至于怎么产生,又怎么消耗,这是一种物理上的实现,根据每种设备有所不同,但C语言中对它们一视同仁,以一个“流”字来概括它们的特征。作为流的使用者来说,不需要关心太多的细节。流的实现保证了它具有它所声明的特性。C语言中对流除了分为I/O流之外,还分为文本流与二进制流。文本流的特点是流由文本行组成,每一行有0个或多个字符并以’\n’字符结束,即它是有一定意义的,以某种字符集的字符组成的一个序列。一个文本流,读入与写出时可能会对其内容作更改,因为它是有一定意义的,系统可以识别并在适当时候解释,比如在输出文本流中碰到’\b’时,系统的操作是将输入流中的前一个字符删除,在终端上显示就是在它前面输出的这个字符被删除了;二进制流则完成是由一些“生”的,未经处理的数据组成的,C语言将它们看成由0与1组成的序列来读与写,所以它们的特性是同一系统中把同一二进制流读入与写出,其内容没有任何变化。
⑷ 怎么用c语言把采集的连续12bit数据转换成字节流
UINT类型是unsigned int另一种定义形式,对应于32位无符号整数,占用4个字节,将其转换为数组除非特殊需要,没有必要。转换成短整型数组两个成员,转换成字符型数组,有四个成员。
⑸ C语言二进制流写入文件
我提个思路。字节是计算机操作的实际最基本单位,任何地址只能精确到字节而无法精确到位的。
所以LZ一定要将位整合到以字节为单位才能进行其他操作。可以这么做,将二进制流按照每8位一个单位装成一个字节,并明确好字节之间的顺序,字节内高低位的顺序,最后末尾不足的要塞一些没意义的但LZ要知道的位凑足成字节。这里面当然必须反复用到位运算。
通常的做法是字节之间的顺序按照自然字节地址由小到大顺序,字节内低位在前。比如对于已经整合成字节的字节流a[N],查看第 i 个位(从0起)的算法是 a[i/8] & (1<<(i%8))。
不同的位序约定会稍有不同位操作
⑹ C语言读写文件的时候怎么控制字符编码方式
C语言读写文件有两种方式: 一种是文本方式,另一种是2进制方式。日文,中文,unicode, 都要用2进制方式。文件内容的编码和编码的转化,同一种编码的大端或小端编码,都要自己安排处理。
C语言不管读写都要通过fopen函数来,其中mode参数可以控制以二进制打开还是以文本方式打开。
fopen的函数原型:FILE * fopen(const char * path,const char * mode);
fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:
r 以只读方式打开文件,该文件必须存在。
r+ 以可读写方式打开文件,该文件必须存在。
rb+ 读写打开一个二进制文件,允许读数据。
rw+ 读写打开一个文本文件,允许读和写。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
wb 只写打开或新建一个二进制文件;只允许写数据。
wb+ 读写打开或建立一个二进制文件,允许读和写。
wt+ 读写打开或着建立一个文本文件;允许读写。
at+ 读写打开一个文本文件,允许读或在文本末追加数据。
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。
⑺ 有什么好的C语言在线编程网站吗
南洋理工学院的OJ系统还是不错的,希望对你有帮助,望采纳
⑻ C语言文件的编译与执行的四个阶段并分别描述
开发C程序有四个步骤:编辑、编译、连接和运行。
任何一个体系结构处理器上都可以使用C语言程序,只要该体系结构处理器有相应的C语言编译器和库,那么C源代码就可以编译并连接到目标二进制文件上运行。
1、预处理:导入源程序并保存(C文件)。
2、编译:将源程序转换为目标文件(Obj文件)。
3、链接:将目标文件生成为可执行文件(EXE文件)。
4、运行:执行,获取运行结果的EXE文件。
(8)c语言在线编译字节流扩展阅读:
将C语言代码分为程序的几个阶段:
1、首先,源代码文件测试。以及相关的头文件,比如stdio。H、由预处理器CPP预处理为.I文件。预编译的。文件不包含任何宏定义,因为所有宏都已展开,并且包含的文件已插入。我归档。
2、编译过程是对预处理文件进行词法分析、语法分析、语义分析和优化,生成相应的汇编代码文件。这个过程往往是整个程序的核心部分,也是最复杂的部分之一。
3、汇编程序不直接输出可执行文件,而是输出目标文件。汇编程序可以调用LD来生成可以运行的可执行程序。也就是说,您需要链接大量的文件才能获得“a.out”,即最终的可执行文件。
4、在链接过程中,需要重新调整其他目标文件中定义的函数调用指令,而其他目标文件中定义的变量也存在同样的问题。
⑼ 可以显示C语言编译成汇编语言全过程的编译器
VC6.0下载地址
http://hi..com/%D3%A5%DE%C4/blog/item/2a8d0df7180b9b4c342acc5e.html
C语言代码写完那之后,确定可以编译通过
C语言反汇编过程:按“F10”->找到“调式框”->点击“disassembly”
注意disassembly是由一个放大镜和一个文本复合构成的图标,按F10之后,这个图标可以看到
如C语言代码为:
#include <stdio.h>
int main(void)
{
printf("hello world!\n");
return 0;
}
以下就是C语言反汇编结果
1: #include <stdio.h>
2:
3: int main(void)
4: {
00401010 push ebp
00401011 mov ebp,esp
00401013 sub esp,40h
00401016 push ebx
00401017 push esi
00401018 push edi
00401019 lea edi,[ebp-40h]
0040101C mov ecx,10h
00401021 mov eax,0CCCCCCCCh
00401026 rep stos dword ptr [edi]
5: printf("hello world!\n");
00401028 push offset string "hello world!\n" (0042201c)
0040102D call printf (00401060)
00401032 add esp,4
6:
7: return 0;
00401035 xor eax,eax
8: }
⑽ 用C语言编ATM
大体是这样的:
机器正常服务画面,
如果有个客户插卡进来后,读卡器传感器检测到了,就会通知sp(系统),有卡进来了。接着SP向读卡器发送一个关闭闸门命令,将闸门关掉,防止其他的卡再插进来。接着SP发送一个读卡的指令,读卡器硬件开始读卡,接着将读出的结果放在一串字节流中,返回给SP,SP会分析该返回字节流,因为其格式都是硬件手册里面定义好的,哪一位表示什么都是固定的。SP根据各个位的意思进行分析,从而知道是否成功,并且该字节流里面还包括1、2、3磁道的数据,SP根据字节流的位置可以将磁道依次取出,放到一个变量中存起来,以便ATMC中使用。(如果该卡的格式不符合硬件手册里面定义好的,则出现退卡“对不起,不支持贵卡”),读完卡后,读卡器就先停下来,出现“安全确认”或者“输入密码”的画面,卡保留在里面。接着,用户进入功能选择画面,“查询”、“转帐”和“改密”、“取款”.(进入此画面不进行密码校验)。当客户选择了“取款”后,客户输入取款金额,ATM会先向主机发送一个报文,确认密码是否正确,正确则将客户的钱扣掉,ATM等待主机返回报文,如果返回的信息是一切OK,则ATM开始出钞了。