Ⅰ 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的數據文件由一連串的字元(或位元組)組成,而不考慮行的界限,兩行數據間不會自動加分隔符,對文件的存取是以字元(位元組)為單位的。輸入輸出數據流的開始和結束僅受程序控制而不受物理符號(如回車換行符)控制,這就增加了處理的靈活性。