㈠ c語言中如何打開文件
1.2
文件的輸入輸出函數
鍵盤、顯示器、列印機、磁碟驅動器等邏輯設備,
其輸入輸出都可以通過文件管理的方法來完成。而在編程時使用最多的要算
是磁碟文件,
因此本節主要以磁碟文件為主,
詳細介紹Turbo
C2.0提供的文件操作函數,
當然這些對文件的操作函數也適合於非磁
盤文件的情況。
另外,
Turbo
C2.0提供了兩類關於文件的函數。一類稱做標准文件函數也稱緩沖型文件函數,
這是ANSI標準定義的函數;
另一
類叫非標准文件函數,
也稱非緩沖型文件函數。這類函數最早公用於UNIX操作系統,
但現在MS-DOS3.0
以上版本的操作系統也可以
使用。下面分別進行介紹。
1.2.1
標准文件函數
標准文件函數主要包括文件的打開、關閉、讀和寫等函數。不象BASIC
、FORTRAN語方有順序文件和隨機文件之分,
在打開時
就應按不同的方式確定。Turbo
C2.0並不區分這兩種文件,
但提供了兩組函數,
即順序讀寫函數和隨機讀寫函數。
一、文件的打開和關閉
任何一個文件在使用之前和使用之後,
必須要進行打開和關閉,
這是因為操作系統對於同時打開的文件數目是有限制的,
DOS
操作系統中,
可以在DEVICE.SYS中定義允許同時打開的文件數n(用files=n定義)。其中n
為可同時打開的文件數,
一般n<=20。因
此在使用文件前應打開文件,
才可對其中的信息進行存取。
用完之後需要關閉,
否則將會出現一些意想不到的錯誤。Turbo
C2.0
提供了打開和關閉文件的函數。
1.
fopen()函數
fopen函數用於打開文件,
其調用格式為:
FILE
*fopen(char
*filename,
*type);
在介紹這個函數之前,
先了解一下下面的知識。
(1)
流(stream)和文件(file)
流和文件在Turbo
C2.0中是有區別的,
Turbo
C2.0
為編程者和被訪問的設備之間提供了一層抽象的東西,
稱之為"流",
而將
具體的實際設備叫做文件。流是一個邏輯設備,
具有相同的行為。因此,用來進行磁碟文件寫的函數也同樣可以用來進行列印機的
寫入。在Turbo
C2.0中有兩種性質的流:
文字流(text
stream)和二進制(binary
stream)。
對磁碟來說就是文本文件和二進制文
件。本軟體為了便於讓讀者易理解Turbo
C2.0語言而沒有對流和文件作特別區分。
(2)
文件指針FILE
實際上FILE是一個新的數據類型。它是Turbo
C2.0的基本數據類型的集合,
稱之為結構指針。有關結構的概念將在第四節中詳
細介紹,
這里只要將FILE理解為一個包括了文件管理有關信息的數據結構,
即在打開文件時必須先定義一個文件指針。
(3)
以後介紹的函數調用格式將直接寫出形式參數的數據類型和函數返回值的數據類型。例如:
上面打開文件的函數,
返回一
個文件指針,
其中形式參數有兩個,
均為字元型變數(字元串數組或字元串指針)。本軟體不再對函數的調用格式作詳細說明。
現在再來看打開文件函數的用法。
fopen()函數中第一個形式參數表示文件名,
可以包含路徑和文件名兩部分。
如:
"B:TEST.DAT"
"C:\\TC\\TEST.DAT"
如果將路徑寫成"C:\TC\TEST.DAT"是不正確的,
這一點要特別注意。
第二個形式參數表示打開文件的類型。關於文件類型的規定參見下表。
表
文件操作類型
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
字元
含義
————————————————————————————
"r"
打開文字文件只讀
"w"
創建文字文件只寫
"a"
增補,
如果文件不存在則創建一個
"r+"
打開一個文字文件讀/寫
"w+"
創建一個文字文件讀/寫
"a+"
打開或創建一個文件增補
"b"
二進制文件(可以和上面每一項合用)
"t"
文這文件(默認項)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
如果要打開一個CCDOS子目錄中,
文件名為CLIB的二進制文件,
可寫成:
fopen("c:\\ccdos\\clib",
"rb");
如果成功的打開一個文件,
fopen()函數返迴文件指針,
否則返回空指針(NULL)。由此可判斷文件打開是否成功。
2.
fclose()函數
fclose()函數用來關閉一個由fopen()函數打開的文件
,
其調用格式為:
int
fclose(FILE
*stream);
該函數返回一個整型數。當文件關閉成功時,
返回0,
否則返回一個非零值。可以根據函數的返回值判斷文件是否關閉成功。
例10:
#iclude
main()
{
FILE
*fp;
/*定義一個文件指針*/
int
i;
fp=fopen("CLIB",
"rb");
/*打開當前目錄名為CLIB的文件只讀*/
if(fp==NULL)
/*判斷文件是否打開成功*/
puts("File
open
error");
/*提示打開不成功*/
i=fclose(fp);
/*關閉打開的文件*/
if(i==0)
/*判斷文件是否關閉成功*/
printf("O,K");
/*提示關閉成功*/
else
puts("File
close
error");
/*提示關閉不成功*/
}
㈡ C語言如何從文件中讀取指令
可以用fgets 讀取文件內容 然後用strtok_r 拆分 安什麼字元拆得看文件格式咯。。。。。
㈢ C語言中怎麼用system()函數打開一個可執行文件
system()的輸入參數是一個字元串,這個函數的作用就是在命令行下以命令的形式執行這個字元串。
如「C:a.exe」 在命令行下是可以直接運行的,所以直接填到參數里就行了。不過需要注意的是,字元串作為參數的時候「」要做一下轉義,要變成「\」才行。
㈣ C語言程序中如何打開文件
while(fscanf(fp,"%c",&c),c!=EOF)
應改為
while (fscanf(fp,"%c",&c)!=EOF)
例如:
//---------------------------------------------------------------------------
#include <stdio.h>
int main(void)
{
FILE *fp=fopen("c:/a.txt","r");
char c=0;
while (fscanf(fp,"%c",&c)!=EOF)
putchar(c);
fclose(fp);
return 0;
}
//---------------------------------------------------------------------------
㈤ 關於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語言程序設計中如何打開文件
#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打開源文件即可。
路徑操作函數 chdir。
chdir函數是C語言中的一個系統調用函數(同cd)功 能:更改當前工作目錄。參 數:Path 必選。Path 可能包含驅動器。如果未指定驅動器,則當前驅動器上的默認目錄或文件夾。返回值:成功返回0 ,失敗返回-1
文件操作函數fopen。
函數原型:FILE* fopen(const char * path,const char * mode);返回值:文件順利打開後,指向該流的文件指針就會被返回。如果文件打開失敗則返回NULL,並把錯誤代碼存在errno中。一般而言,打開文件後會做一些文件讀取或寫入的動作,若打開文件失敗,接下來的讀寫動作也無法順利進行,所以一般在fopen()後作錯誤判斷及處理。
㈧ 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語言中打開頭文件的命令是什麼
用任意文本編輯器打開即可。
語言特點
主要特點
C語言是一種結構化語言,它有著清晰的層次,可按照模塊的方式對程序進行編寫,十分有利於程序的調試,且c語言的處理和表現能力都非常的強大,依靠非常全面的運算符和多樣的數據類型,可以輕易完成各種數據結構的構建。
通過指針類型更可對內存直接定址以及對硬體進行直接操作,因此既能夠用於開發系統程序,也可用於開發應用軟體。通過對C語言進行研究分析,總結出其主要特點如下:
簡潔的語言
C語言包含的各種控制語句僅有9種,關鍵字也只有32個,程序的編寫要求不嚴格且以小寫字母為主,對許多不必要的部分進行了精簡。
實際上,語句構成與硬體有關聯的較少,且C語言本身不提供與硬體相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統。
以上內容參考:網路-C語言
㈩ 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();
}
是否可以解決您的問題?