① c語言創建文件,文件名可以用變數么
C語言中windows環境下,至少有三種方式可以創建文件,文件名都可以使用變數。
常用的函數中,無論是fopen還是CreateFile,其參數都可以使用變數來作為文件名來創建文件和讀寫文件。
② c語言中,fopen(「文件名」,「打開方式」)中的文件名可以是變數嗎
文件名可以直接寫進去,也可以放在變數里:
FILE *fp;
char namein[]="abc.txt";
fp=fopen(namein,"r");
或 fp=fopen("abc.txt","r");
文件名若帶路徑,單反斜杠要寫成雙反斜杠,例如:
char namein[]="C:\\path\\abc.txt";
長路徑可用8字母格式縮寫:
C:\Documents and Settings\Wang\...縮寫:
char namein[]="C:\\Docume~1\\Wang\\abc.txt";
二進制文件打開方式用rb:
fp=fopen("abc.txt","rb"); 或:
fp=fopen(namein,"rb");
③ C語言中將文件名賦值給字元串變數的作用是什麼
就是你說的賦值作用,讓一個字元串變數的值為那個文件名,比如const char* p = "text.txt";後面要用到這個文件名,就可以用變數p來代替了。
④ c語言中,fopen(「文件名」,「打開方式」)中的文件名可以是變數嗎謝謝
可以
從文件中讀取一個數
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int a;
char str[100];//儲存文件名的數組
FILE *fp;
printf("請輸入文件名:");
gets(str);
if (NULL == (fp = fopen(str, "r")))//注意這的表達形式
{
printf("文件打開失敗!\n");
exit(0);
}
while (fscanf(fp, "%d", &a) != EOF);
printf("%d\n", a);
}
⑤ c語言fopen函數如何用一個變數來作為文件名
用char數組
實例:
#include<stdio.h>
int main(void)
{
char F_PATH[]="d:\\myfile\\file.dat";
FILE*fp=NULL;//需要注意
fp=fopen(F_PATH,"r");
if(NULL==fp)
{
return -1;//要返回錯誤代碼
}
fclose(fp);
fp=NULL;//需要指向空,否則會指向原打開文件地址
return 0;
}
⑥ C語言中如何將一個變數作為文件名的一部分(該文件帶有後綴)
相當於把i放到文件名的字元串中吧
不知文件名你用的什麼類型
Cstring之類都有format函數
⑦ C語言如何讀/寫名帶變數的文件
沒太看明白你的意思,是要復制這個文件到別的地方么?
C語言沒有這樣的標准庫函數,你可以按照這樣的思路復制文件:
以二進制模式打開源文件進行讀取,打開目標文件進行寫入
讀取源文件中的一個字元,如過沒有達到源文件的末尾,就把這個字元寫入目標文件
當達到源文件末尾時關閉文件
有變數的文件名可以使用sprintf函數得到文件路徑之後再打開
例如
int a = 2;
char *filePath[256];
想打開 a.txt(2.txt) 的話,用sprintf(filePath, "%d.txt", a); filePath的值就是2.txt了
⑧ C語言中如何用變數來命名輸出的文件
輸出文件,一般使用C語言的文件I/O函數,一般是使用fopen()打開文件,用fwrite()寫入文件,fclose()關閉文件。fopen的函數原型如下:
FILE*fopen(constchar*path,constchar*mode);
參數說明:path指明要打開的文件名,mode指明以什麼方式打開,所以一般通過一個字元數組來命名要輸出的文件名。
charfile_name[256]="c:\myfile.txt";
上面定義了一個字元有256個char類型的字元數組file_name,用於保存要打開的文件myfile.txt,注意在C語言中符號需要轉義才可以正常使用,因此使用路徑名為c:\myfile.txt。
⑨ C語言如何寫文件如何將文件名用參數代替
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char username[]="abc";//應該是字元串
//char *filename = "c:\\data\\a.xml";//參數文件保存路徑,根據需要修改
char filename[100];//定義字元數組,數組可修改不同字元串。
FILE *file;//指向文件的指針
memset(filename,'\0',100);//初始化數組
printf("input your filename.\n");
gets(filename);
while(*filename!=NULL)//當連續輸入2個回車,代表不再輸入。
{
//用於打開文件
if ((file = fopen(filename, "w+" )) == NULL)
{
//lr_output_message("Unable to create %s", filename);
printf("unable to open.\n ");
exit(0);
}
fwrite(username,sizeof(username),1,file);
fclose(file);//關閉文件
printf("input your filename.\n");
memset(filename,'\0',100);
gets(filename);
}
printf("finish.\n");
return 0;
}
參考下
如果系統能生成20110228111111.xml,把它變成字元串存到某個數組中,假如b[100]
可以用for(i=0;i<100;i++)
{ ...
strcpy(filename,b);//將b拷貝到filename中
...處理文件寫入
}
如果思路比較混亂,建議先分解成幾塊,封裝不同函數中
例如 怎麼把系統生成的文件名稱拷貝到filename中
怎麼寫入相應信息。