① 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中
怎麼寫入相應信息。
② C語言中編寫函數需要文件名作為形參
給個程序自己參考,下面程序運行時你輸入一個文件名, 它會打開此文件,並寫入0-99個數字。
#include <stdio.h>
void foo(const char *filename)
{
int i;
FILE *fp = fopen(filename, "w+");
for (i = 0; i < 100; i++)
fprintf(fp,"%d ", i);
fclose(fp);
}
void main()
{
char str[128];
scanf("%s", str);
foo(str);
}
③ 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語言自定義文件名
1.用C語言自定義文件名,涉及到的相關知識如下:
_finddata_t結構體:
struct _finddata_t {
unsigned attrib ;
time_t time_create ;
time_t time_access ;
time_t time_write ;
_fsize_t size ;
char name [260] ;
}
rename函數:
功能描述:
改變文件的名稱或者位置,如果目標已存在,將被自動覆蓋。
用法:
#include <stdio.h>
int rename(const char *oldpath, const char *newpath);
參數:
oldpath:舊文件名。
newpath:新文件名或者新位置。
返回說明:
成功執行時,返回0。失敗返回-1,errno被設為以下的某個值
EACCES:權能不足
EBUSY:參數oldpath或者newpath代表的是目錄,而且一些進程正在使用它們
EFAULT: 內存空間不可訪問
EINVAL:參數無效
EISDIR:newpath是一個現存的目錄,而oldpath不是目錄
ELOOP :路徑解析的過程中存在太多的符號連接
EMLINK:目錄超出允許的最大連接數
ENAMETOOLONG:路徑名超出可允許的長度
ENOENT:路徑名部分內容表示的目錄不存在
ENOMEM: 核心內存不足
ENOSPC: 磁碟配額限制或空間不足
ENOTDIR:路徑名的部分內容不是目錄
EPERM : 包含路徑名的文件系統不支持建立目錄
EROFS:文件系統只讀
ENOTEMPTY:newpath是一個非空的目錄,除了. 和 ..以外,還包含其它入口。
EEXIST:同上
EXDEV:oldpath和newpath不處於同一文件系統
2.用C語言自定義文件名的代碼常式如下:
#include<stdio.h>
#include<io.h>
intmain(intargv,char*argc)
{
longhandle;
inti=0,j=0;
struct_finddata_tfileinfo;
charfilePT[256]={'