❶ 如何用fopen建立隱藏屬性的文件
fopen的聲明形式為:
FILE *fopen(char *filename, char *mode);
當mode設置為"w"時,會對一個名字為filename的文件執行寫操作,如果文件存在,那麼文件會被清空重寫,否則將會創建文件。
文件保存的位置,由filename決定。
1 filename為絕對路徑,那麼將在filename指定的路徑下建立文件,如
filename = "D:\\test\\a.txt"
則會在D盤test文件夾下,建立a.txt文件。
2 filename中不包含路徑信息,或包含相對路徑信息,那麼文件位置將由工作路徑,和filename共同決定。
如運行exe文件的工作路徑為D:\clang\bin\
而filename為"a.txt",那麼就會生成D:\clang\bin\a.txt
如果filename為"..\\file\\a.txt",那麼就會生成D:\clang\bin\..\file\a.txt。也就是D:\clang\file\a.txt。
❷ 關於C語言中用fopen創建TXT的問題
有的
定義函數
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+
讀寫打開一個二進制文件,允許讀或在文件末追加數據。
以上都是網路里有的,我雖然知道不過也記不得這么全。你逐條看看,用的時候再記就可以
比如
fp=fopen("d:\\mytxt.txt","a+")就是追加類型的
❸ c語言問題,如何在文件夾里創建文件
使用文件操作函數即可創建文件。
1、C語言標准庫提供了一系列文件操作函數。文件操作函數一般以f+單詞的形式來命名(f是file的簡寫),其聲明位於stdio.h頭文件當中。例如:fopen、fclose函數用於文件打開與關閉;fscanf、fgets函數用於文件讀取;fprintf、fputs函數用於文件寫入;ftell、fseek函數用於文件操作位置的獲取與設置。
2、常式:
#include<stdio.h>
int a;
char b,c[100];
int main(){
FILE * fp1 = fopen("input.txt", "r");//打開輸入文件
FILE * fp2 = fopen("output.txt", "w");//打開輸出文件
if (fp1==NULL || fp2==NULL) {//若打開文件失敗則退出
puts("不能打開文件!");
return 0;
}
fscanf(fp1,"%d",&a);//從輸入文件讀取一個整數
b=fgetc(fp1);//從輸入文件讀取一個字元
fgets(c,100,fp1);//從輸入文件讀取一行字元串
printf("%ld",ftell(fp1));//輸出fp1指針當前位置相對於文件首的偏移位元組數
fputs(c,fp2);//向輸出文件寫入一行字元串
fputc(b,fp2);//向輸出文件寫入一個字元
fprintf(fp2,"%d",a);//向輸出文件寫入一個整數
fclose(fp1);//關閉輸入文件
fclose(fp2);//關閉輸出文件,相當於保存
return 0;
}
❹ fopen 用法
fopen()函數的用法:
fopen函數用於打開文件, 其調用格式為:FILE *fopen(char *filename, *type);fopen()函數中第一個形式參數表示文件名, 可以包含路徑和文件名兩部分。如:"B:TEST.DAT""C:\\TC\\TEST.DAT"注意:如果將路徑寫成"C:\TC\TEST.DAT"是不正確的, 這一點要特別注意。
fopen函數用來打開一個文件,其調用的一般形式為: 文件指針名=fopen(文件名,使用文件方式)
其中,「文件指針名」必須是被說明為FILE 類型的指針變數,「文件名」是被打開文件的文件名。
「使用文件方式」是指文件的類型和操作要求。「文件名」是字元串常量或字元串數組。例如:
FILE *fp;
fp=("file_a","r");
其意義是在當前目錄下打開文件file_ a, 只允許進行「讀」操作,並使fp指向該文件。
又如:
FILE *fphzk
fphzk=("c:\\hzk16',"rb")
其意義是打開C驅動器磁碟的根目錄下的文件hzk16, 這是一個二進制文件,只允許按二進制方式進行讀操作。
兩個反斜線「\\ 」中的第一個表示轉義字元,第二個表示根目錄。使用文件的方式共有12種,下面給出了它們的符號和意義。
第二個形式參數表示打開文件的類型。關於文件類型的規定參見下表。
字元 含義
────────────────────────────
"r" 打開文字文件只讀
"w" 創建文字文件只寫
"a" 增補, 如果文件不存在則創建一個
"r+" 打開一個文字文件讀/寫
"w+" 創建一個文字文件讀/寫
"a+" 打開或創建一個文件增補
"b" 二進制文件(可以和上面每一項合用)
"t" 文這文件(默認項)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
文件使用方式 意 義
「rt」只讀打開一個文本文件,只允許讀數據
「wt」只寫打開或建立一個文本文件,只允許寫數據
「at」追加打開一個文本文件,並在文件末尾寫數據
「rb」只讀打開一個二進制文件,只允許讀數據
「wb」 只寫打開或建立一個二進制文件,只允許寫數據
「ab」 追加打開一個二進制文件,並在文件末尾寫數據
「rt+」 讀寫打開一個文本文件,允許讀和寫
「wt+」 讀寫打開或建立一個文本文件,允許讀寫
「at+」 讀寫打開一個文本文件,允許讀,或在文件末追加數 據
「rb+」 讀寫打開一個二進制文件,允許讀和寫
「wb+」 讀寫打開或建立一個二進制文件,允許讀和寫
「ab+」 讀寫打開一個二進制文件,允許讀,或在文件末追加數據
對於文件使用方式有以下幾點說明:
1. 文件使用方式由r,w,a,t,b,+六個字元拼成,各字元的含義是:
r(read): 讀
w(write): 寫
a(append): 追加
t(text): 文本文件,可省略不寫
b(banary): 二進制文件
+: 讀和寫
2. 凡用「r」打開一個文件時,該文件必須已經存在, 且只能從該文件讀出。
3. 用「w」打開的文件只能向該文件寫入。 若打開的文件不存在,則以指定的文件名建立該文件,若打開的文件已經存在,則將該文件刪去,重建一個新文件。
4. 若要向一個已存在的文件追加新的信息,只能用「a 」方式打開文件。
5. 在打開一個文件時,如果出錯,fopen將返回一個空指針值NULL。在程序中可以用這一信息來判別是否完成打開文件的工作,並作相應的處理。因此常用以下程序段打開文件:
if((fp=fopen("c:\\hzk16","rb")==NULL)
{
printf("\nerror on open c:\\hzk16 file!");
getch();
exit(1);
}
這段程序的意義是,如果返回的指針為空,表示不能打開C盤根目錄下的hzk16文件,則給出提示信息「error on open c:\ hzk16file!」,下一行getch()的功能是從鍵盤輸入一個字元,但不在屏幕上顯示。在這里,該行的作用是等待, 只有當用戶從鍵盤敲任一鍵時,程序才繼續執行, 因此用戶可利用這個等待時間閱讀出錯提示。敲鍵後執行exit(1)退出程序。
6. 把一個文本文件讀入內存時,要將ASCII碼轉換成二進制碼, 而把文件以文本方式寫入磁碟時,也要把二進制碼轉換成ASCII碼,因此文本文件的讀寫要花費較多的轉換時間。對二進制文件的讀寫不存在這種轉換。
7. 標准輸入文件(鍵盤),標准輸出文件(顯示器 ),標准出錯輸出(出錯信息)是由系統打開的,可直接使用。文件關閉函數fclose文件一旦使用完畢,應用關閉文件函數把文件關閉, 以避免文件的數據丟失等錯誤。
如果要打開一個CCDOS子目錄中, 文件名為CLIB的二進制文件, 可寫成:fopen("c:\\ccdos\\clib", "rb");如果成功的打開一個文件, fopen()函數返迴文件指針, 否則返回空指針(NULL)。由此可判斷文件打開是否成功。2. fclose()函數 fclose()函數用來關閉一個由fopen()函數打開的文件 , 其調用格式為: nt fclose(FILE *stream); 該函數返回一個整型數。當文件關閉成功時, 返回0,否則返回一個非零值。可以根據函數的返回值判斷文件是否關閉成功。 例子:FILE *fpOut=fopen(「c:\\a.txt」,」wt+」);Int a=1;Fprintf(fpOut,」%d」,a);Fclose(fpOut);
❺ c語言中的fopen能創建文件夾嗎
這是不能夠的。要想創建文件夾,可以先包含頭文件stdlib.h,(在C++中可以包含cstdlib)然後使用system("md d:\mydir");就可以了:
#include
#include
using namespace std;
int main()
{ system("md d:\mydir");
system("dir d:\mydir*.*");
return 0;
}
運行截圖如下:
❻ 關於利用fopen函數創建文件的問題
函數原型:FILE * fopen(const char * path,const char * mode);
相關函數:open,fclose,fopen_s,_wfopen
返回值:文件順利打開後,指向該流的文件指針就會被返回。如果文件打開失敗則返回NULL,並把錯誤代碼存在errno 中。
參數說明:
參數path字元串包含欲打開的文件路徑及文件名,參數mode字元串則代表著流形態。
mode有下列幾種形態字元串:
r 以只讀方式打開文件,該文件必須存在。
r+ 以可讀寫方式打開文件,該文件必須存在。
rb+ 讀寫打開一個二進制文件,允許讀寫數據,文件必須存在。
w 打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。
w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
a 以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。(EOF符保留)
a+ 以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。 (原來的EOF符不保留)
wb 只寫打開或新建一個二進制文件;只允許寫數據。
wb+ 讀寫打開或建立一個二進制文件,允許讀和寫。
ab+ 讀寫打開一個二進制文件,允許讀或在文件末追加數據。
wx 創建文本文件,只允許寫入數據.[C11]
wbx 創建一個二進制文件,只允許寫入數據.[C11]
w+x 創建一個文本文件,允許讀寫.[C11]
wb+x 創建一個二進制文件,允許讀寫.[C11]
w+bx 和"wb+x"相同[C11]
例子:
#include<stdio.h>
#defineF_PATH"d:\myfile\file.dat"
intmain(void)
{
FILE*fp=NULL;//需要注意
fp=fopen(F_PATH,"r");
if(NULL==fp)
{
return-1;//要返回錯誤代碼
}
fclose(fp);
fp=NULL;//需要指向空,否則會指向原打開文件地址
return0;
}