① 在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
值。