用文件路径 *** 作函数找到源代码所在的文件夹。使用文件 *** 作函数fopen打开源文件即可。
路径 *** 作旦咐函数 chdir。
chdir函数是C语言中的一个系统调用函数(同cd)功 能:更改当前工作目录。参 数:Path 必选。Path 可能包含驱动器。如果山纤未指定驱动器,则当前驱动器上的默认目录或文件夹。返回值:成功返回0 ,失败返回-1
文件 *** 作函数fopen。
函数原型:FILE * fopen(const char * path,const char * mode)返回值:文件顺利打开后,指向该流的文件指逗迟仿针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。一般而言,打开文件后会做一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法顺利进行,所以一般在fopen()后作错误判断及处理。
使用fread函数读取指定长度的字符串,即使包含\n也会被读取,可以首先使用fseek定位到文件结尾,然后ftell函数返回的值就是文件的大小,这样就可以用循环多次读取文件,直到读取所有内容FILE *file = NULL
char szFile[1025] = {0}
int nHadRead = 0
file = fopen( "file.txt", "r+")
if ( file == NULL )
return
fseek( file, 0, SEEK_END )//定位到文件尾芹皮
int nLen = ftell( file )//获取当前位置,即文件长度
fseek( file 0, SEEK_SET )//重新定位到文件开头,准备开始读
while ( nHadRead <nLen )
{
int nRead = nLen - nHadRead >1024 ? 1024 : nLen - nHadRead //如果剩余小于1024字节,则读剩余字节,否则每次读取皮数1024字节。
int nTmp = fread( szFile, 1, nRead , file )
nHadRead += nTmp
printf( "%s", szFile )
memset( szFile, 0x0, sizeof(szFile) )
}
fclose(file)
大致过程就燃首首是这样,纯手打,没有调试过,可能有错
变量用char 型, 不是用 string 类(class).文件名传入的简单办法是通过位置参数:
void main (int argc, char *argv[]){
char my_path[80],my_name[32], filename[120]
if (argc <3){
printf("Uasge:%s path_string file_name\n",argv[0])
exit(0)
}
strcpy(my_path,argv[1])// 路径名
strcpy(my_name,argv[2])// 文件名
sprintf(file_name,"%s\\%s",my_path,my_name)
// 全名 在宽仔 file_name 里
}
运行时打入:
程序名 路径名 文件名
例如:
myprog "C:\\program files\\src" abc.txt
路径御键名镇巧巧用引号是因为路径含空白,若不含空白,可以不要引号.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)