Ⅰ c语言中对文件操作的过程.
文本文件也叫做ascii码文件,与以‘文本方式’打开文件不是同一个概念!文本文件存储的是asscii码字符,即存储在磁盘上只占用二进制的0x20--0x7e。另外,还有回车(0x0d),换行(0x0a),tab(0x09)等,所以有可压缩的空间。
换行和回车是不同的,而且在不同的操作系统,解释也不相同。‘\n’一般会操作系统被翻译成"行的结束",即lf(line-feed);‘\r’会被翻译成"回?,即cr(cariage-return)
回车(cr)和换行(lf)符都是用来表示“下一行”的。而标准没有规定要使用哪一个。于是产生了三种不同的用法:
(1)
dos和windows采用回车+换行(cr+lg)表示下一行
(2)
unix采用换行符(lf)表示下一行
(3)
mac机采用回车符(cr)表示下一行。
当在不同的系统间传递文件,就要涉及格式的转换。
文本方式和二进制方式的最大区别在于文本方式对于'\n'换行符的理解不同
(1)在dos平台下,该字符会被展开成
<
lf>两个控制字符(相当于"\r\n"),在ascii字符集下是
0dh,0ah
(2)在unix平台下,仅仅是
,不会展开。
(3)在二进制方式下,不管是什么平台,'\n'都是精确的
。
在linux/unix
系统上,只有一种文件类型的系统,带b字母的模式和对应的不带b字母的模式是相同的。(unix文本文件通常不包含ctrl+z和\r)
关于eof:
eof可以作为文本文件的结束标志,但不能作为二进制文件的结束符.feof函数既可以判断二进制文件,又可以判断文本文件.
eof在windows下是ctrl+z,linux下是ctrl+d.
1,
change
the
default
translation
mode
directly
by
setting
the
global
variable
_fmode
in
your
program.
the
initial
default
setting
of
_fmode
is
_o_text,
for
text
mode.
2,_o_text
sets
text
(translated)
mode.
carriage
return–linefeed
(cr-lf)
combinations
are
translated
into
a
single
linefeed
character
on
input.
linefeed
characters
are
translated
into
cr-lf
combinations
on
output.
_o_binary
sets
binary
(untranslated)
mode,
in
which
these
translations
are
suppressed.
ms-dos文本文件用回车符和换行符的组合\r\n表示行尾。macintosh文本文件使用只用一个回车符\r来表示行尾。c程序使用\n表示行尾。所以,在c程序以文本方式打开一个ms-dos文本文件时,会将\r\n转换为\n,在写入文件的时候它会将\n转换为\r\n。(如果以二进制方式打开该文件,则c程序将看到\r和\n两个字符。)而对于macintosh文本文件的文本视图,在读取文件时它会将\r转换为\n,在写入文件的时候它会将\n转换为\r。
Ⅱ 关于c语言中如何打开文件
//zifu.txt文件只能由ASCII字符组成,否则会出现乱码
#include<stdio.h>
int main()
{
char str[200],a,b;
FILE *p;
int i;
if(NULL==(p=fopen("zifu.txt","r+")))
{
printf("文件打开失败!\n");
}
else
{
fscanf(p,"%s",str);
printf("你要替换的字符:");
a=getchar();
getchar();
printf("你要替换成的字符:");
b=getchar();
getchar();
for(i=0;str[i];i++)
{
if(a==str[i])
str[i]=b;
}
printf("%s\n",str);
fprintf(p,"%s",str);
fclose(p);
}
return 0;
}
Ⅲ 一段C语言程序从编译的到软件打开整个过程是怎样的
过程就是编写代码、保存代码、编译(将代码编译成目标文件)、连接(将目标文件连接成可执行文件)、运行(运行可执行程序),这样你所编写的软件就打开了。更深入一点来说就是,编写、保存代码是建立了一些纯文本格式的高级语言代码文件,编译和连接是通过编译器、连接器将高级语言代码编译成二进制文件,变成了二进制文件才能运行起来,有的编程工具中有能够直接运行代码的功能,那也是在将代码编译好了以后再调用、启动编译好的二进制文件才运行起来的。
Ⅳ 在C语言中,举例说明如何打开一个文本文件,并读入文件中的数据
1.首先,使用VS构建一个新的空项目,然后直接单击ok。
Ⅳ 如何使用c语言打开一个文件
用fopen函数啊
Ⅵ c语言如何打开文件
你只要把下面代码的file_path改成你要输出的文件就可以了。注意,一般window下的文件路径都是一个反斜杠,但是在file_name的字符串中,所有的反斜杠都写成两个反斜杠。比如
E:\abc\WTK\SW\source.txt
你要写成
E:\\abc\\WTK\\SW\\source.txt
#include <stdio.h>
#include <string.h>
main()
{
FILE *fp;
char ch;
char *file_path = "C:\\test\\myfile.txt";
if((fp=fopen(file_path,"r"))==NULL)
{
printf("\nSorry, Can't open the file! @_@\n");
exit(0);
}
else
{
while((ch=fgetc(fp))!=EOF)
{ printf("%c",ch); }
fclose(fp);
}
getch();
}
是否可以解决您的问题?
Ⅶ c语言程序设计中如何打开文件
#include
"stdio.h"
#include
<stdlib.h>
main()
{
FILE
*fp1;//定义文件流指针,用于打开读取的文件
FILE
*fp2;//定义文件流指针,用于打开写操作的文件
char
text[1024];//定义一个字符串数组,用于存储读取的字符
fp1
=
fopen("d:\\a.txt","r");//只读方式打开文件a.txt
fp2
=
fopen("d:\\b.txt","w");//写方式打开文件a.txt
while(fgets(text,1024,fp1)!=NULL)//逐行读取fp1所指向文件中的内容到text中
{
puts(text);//输出到屏幕
fputs(text,fp2);//将内容写到fp2所指向文件中
}
fclose(fp1);//关闭文件a.txt,有打开就要有关闭
fclose(fp2);//关闭文件b.txt
}
Ⅷ 如何用C语言打开一个文件
首先需要定义一个文件指针
然后使用fopen函数打开
打开进行文件的操作之后还要记得用fclose函数关闭
代码
{
FILE *fp;
fp=fopen("c:\1.txt","rw"); //假如你要打开的是c盘的1.txt文件
if(!fp) {
printf("error:can not open file"); //不能打开文件时的错误提示
return 0;
}
//文件的操作,代码省略
fclose();
}
Ⅸ C语言 对文件进行操作的三个主要过程是
C语言对文件进行操作的三个主要过程是:打开文件、操作文件、关闭文件。
C语言的文件处理功能依据系统是否设置“缓冲区”分为两种:一种是设置缓冲区,另一种是不设置缓冲区。
由于不设置缓冲区的文件处理方式,必须使用较低级的I/O函数(包含在头文件io.h和fcntl.h中)来直接对磁盘存取,这种方式的存取速度慢,并且由于不是C的标准函数,跨平台操作时容易出问题。
(9)c语言打开文件的过程扩展阅读
C语言文件有不同的类型,在程序设计中,主要用到两种文件:
(1)程序文件:包括源程序文件(后缀为.c)、目标文件(后缀为.obj)、可执行文件(后缀为.exe)等。这种文件的内容是程序代码。
(2)数据文件:文件的内容不是程序,而是供程序运行时读写的数据,如在程序运行过程中输出到磁盘(或其他外部设备)的数据,或在程序运行过程中供读入的数据。如一批学生的成绩数据、货物交易的数据等。
为了简化用户对输入输出设备的操作,使用户不必去区分各种输入输出设备之间的区别,操作系统把各种设备都统一作为文件来处理。从操作系统的角度看,每一个与主机相连的输入输出设备都看作一个文件。例如,终端键盘是输入文件,显示屏和打印机是输出文件。
输入输出是数据传送的过程,数据如流水一样从一处流向另一处,因此常将输入输出形象地称为流(stream),即数据流。流表示了信息从源到目的端的流动。在输入操作时,数据从文件流向计算机内存,在输出操作时,数据从计算机流向文件(如打印机、磁盘文件)。
C的数据文件由一连串的字符(或字节)组成,而不考虑行的界限,两行数据间不会自动加分隔符,对文件的存取是以字符(字节)为单位的。输入输出数据流的开始和结束仅受程序控制而不受物理符号(如回车换行符)控制,这就增加了处理的灵活性。