① 在c語言中如何打開文件夾中的文件
用文件路徑操作函數找到源代碼所在的文件夾。使用文件操作函數fopen打開源文件即可。
路徑操作函數 chdir。
chdir函數是C語言中的一個系統調用函數(同cd)功 能:更改當前工作目錄。參 數:Path 必選。Path 可能包含驅動器。如果未指定驅動器,則當前驅動器上的默認目錄或文件夾。返回值:成功返回0 ,失敗返回-1
文件操作函數fopen。
函數原型:FILE* fopen(const char * path,const char * mode);返回值:文件順利打開後,指向該流的文件指針就會被返回。如果文件打開失敗則返回NULL,並把錯誤代碼存在errno中。一般而言,打開文件後會做一些文件讀取或寫入的動作,若打開文件失敗,接下來的讀寫動作也無法順利進行,所以一般在fopen()後作錯誤判斷及處理。
② 如何用C語言打開任意的文件
文件只能一個一個打開,打開之前,必須要知道文件的名稱,所以fopen裡面一定要指定文件的路徑和文件的完整名稱。
要打開指定目錄下面的所有文件,需要遍歷該目錄,得到每個文件的文件名,然後使用fopen一個個打開
TC下面
#include<io.h>
int findfirst(char *pathname, struct ffblk *ffblk, int attrib);
int findnext(struct ffblk *ffblk);
struct ffblk
{
char ff_reserved[21]; /*DOS保留字*/
char ff_attrib; /*文件屬性*/
int ff_ftime; /*文件時間*/
int ff_fdate; /*文件日期*/
long ff_fsize; /*文件長度*/
char ff_name[13]; /*文件名*/
}
attrib為文件屬性,由以下字元代表
FA_RDONLY 只讀文件
FA_LABEL 卷標號
FA_HIDDEN 隱藏文件
FA_DIREC 目錄
FA_SYSTEM 系統文件
FA_ARCH 檔案
③ 怎樣用C語言編程打開一個文件(比如mp3,mp4)
可以使用PlaySound()函數播放mp3音頻,該函數原型位於windows.h。
PlaySound函數的聲明為:
BOOL PlaySound(LPCSTR pszSound, HMODULE hwnd,DWORD fdwSound);
參數pszSound是指定了要播放聲音的字元串。
參數hwnd是應用程序的實例句柄,除非pszSound的指向一個資源標識符(即fdwSound被定義為SND_RESOURCE),否則必須設置為NULL。
參數fdwSound是標志的組合,如下表所示。若成功則函數返回TRUE,否則返回FALSE。
使用PlaySound函數時需要在#include<windows.h>後面加上(注意:不能加在前面):
常式:
CFileDialog dlg(TRUE, "mp3", "*.mp3", OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT, "mp3文件(*.mp3)|*.mp3|");
/*創建選擇對話框,讓用戶從文件夾中選取一個MP3文件*/
int iRet = dlg.DoModal();//獲得對話框返回值
if(IDOK == iRet) //如果返回值成功,表明成功獲取一個MP3文件
{
CString pathName= dlg.GetPathName(); //得到文件的路徑名稱
PlaySound( pathName , NULL, SND_FILENAME | SND_ASYNC);//用playsound函數播放該文件
}
④ 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語言的幾道選擇題
1、下面程序的功能是將字元串s中所有的字元』c』刪除。請選擇填空。
#include<stdio.h>
main()
{
char s[80];
int i,j;
gets(s);
for(i=j=0;s[i]!=』\0』;i++)
if(s[i]!=』c』);
s[j]=』\0』;
puts(s);
}
(C)s[j]=s[i];j++
2. 下述對C語言字元數組的描述中錯誤的是
(C) 可以在賦值語句中通過賦值運算符"="對字元數組整體賦值
3. 下列關於文件的結論中正確的是
B.對文件的操作必須先打開文件
4. 若要用fopen函數打開一個新的二進制文件,該文件要既能讀也能寫,則文件方式字元串應該是
B. 「wb+」
5. 有下面的程序段:
char a[3], b[] = "China";
a = b;
printf("%s", a);
則
(D) 編譯出錯
6. 要打開一個已存在的非空文件「file.dat」用於修改,正確的語句是
D. fp=fopen(「file.dat」,"r+」);
7. 下列語句中,將c定義為文件型指針的是
B. FILE *c;
8. C語言中,對文件操作的一般步驟是
A. 打開文件->操作文件->關閉文件
⑥ 在c語言中怎樣打開一個文本文檔
這些都是c語言打開文件函數fopen的一個參數打開文件方式的值:
定義函數
file
*
fopen(const
char
*
path,const
char
*
mode);
函數說明
參數path字元串包含欲打開的文件路徑及文件名,參數mode字元串則代表著流形態。
mode有下列幾種形態字元串:
r
打開只讀文件,該文件必須存在。
r+
打開可讀寫的文件,該文件必須存在。
rb+
讀寫打開一個二進制文件,只允許讀寫數據。
rt+
讀寫打開一個文本文件,允許讀和寫。
w
打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。
w+
打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
a
以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。
a+
以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。
wb
只寫打開或新建一個二進制文件;只允許寫數據。
wb+
讀寫打開或建立一個二進制文件,允許讀和寫。
wt+
讀寫打開或著建立一個文本文件;允許讀寫。
at+
讀寫打開一個文本文件,允許讀或在文本末追加數據。
ab+
讀寫打開一個二進制文件,允許讀或在文件末追加數據。
上述的形態字元串都可以再加一個b字元,如rb、w+b或ab+等組合,加入b
字元用來告訴函數庫打開的文件為二進制文件,而非純文字文件。不過在posix系統,包含linux都會忽略該字元。
由fopen()所建立的新文件會具有s_irusr|s_iwusr|s_irgrp|s_iwgrp|s_iroth|s_iwoth(0666)許可權,此文件許可權也會參考umask
值。