㈠ c语言文件的打开方式问题
应该是 A
r+ : 打开一个文本文件,文件必须存在,允许读写;
w: 新建一个文本文件,已存在的文件将被删除,只允许写
a+:打开或新建一个文本文件,只允许在文件末尾追写
w+ :新建一个文本文件,已存在的文件将被删除,允许读写
㈡ c语言中文件的打开方式
1.用w方式打开就不说了,文件内容会被摧毁,肯定不行。
2.When a file is opened with the "a" or "a+" access type, all write operations occur at
the end of the file. The file pointer can be repositioned using fseek or rewind, but is always moved back to the end of the file before any write operation is carried out. Thus, existing data cannot be overwritten.
翻译过来:用a或这a+的方式打开文件
所有的写操作都发生在文件末尾,虽然文件指针可以通过fseek或rewind函数重新定位,但是它总是在写入数据之前移回文件的末尾,因此,已经存在的数据不会被覆盖。
综上,应该是没办法实现你所说的插入,只能追加在文件末尾
除非 你把整个文件读出,再复制到另一个文件,再覆盖源文件。
㈢ C语言怎么打开文件
获取当前程序所在路径:
一、1.只获得路径字串不包含文件名
TCHAR
szFilePath[MAX_PATH
+
1]={0};
GetMoleFileName(NULL,
szFilePath,
MAX_PATH);
(_tcsrchr(szFilePath,
_T('\\')))[1]
=
0;//删除文件名,只获得路径字串
CString
str_url
=
szFilePath;
//例如str_url==e:\program\Debug\---------------------------------------------------------2.获得双斜杠路径不包含文件名TCHAR
_szPath[MAX_PATH
+
1]={0}; GetMoleFileName(NULL,
_szPath,
MAX_PATH); (_tcsrchr(_szPath,
_T('\\')))[1]
=
0;//删除文件名,只获得路径
字串 CString
strPath; for
(int
n=0;_szPath[n];n++){if
(_szPath[n]!=_T('\\')){
strPath
+=_szPath[n]
;} else{
strPath
+=
_T("\\\\");}}MessageBox(strPath);//输出==e:\\program\\Debug\\二、1:获取应用程序自身完整路径文件名方法1:#include
"stdlib.h"void
main(){cout
<<
_pgmptr
<<
endl;}方法2:char
szFullPath[MAX_PATH];ZeroMemory(szFullPath,MAX_PAT);::GetMoleFileName(NULL,szFullPath,MAX_PATH);::MessageBox(NULL,szFullPath,"path",MB_ICONINFORMATION);方法3:TCHAR
szPath[MAX_PATH]
=
{0};if(!GetMoleFileName(NULL,
szPath,
MAX_PATH)){
return
;
} AfxMessageBox(szPath);2:如何获取应用程序所在目录?这里值得注意的是很多人都用GetCurrentDirectory(MAX_PATH,
szCurrentPath);来获取。这个方法并不好,经常出错,比如现在我有一个程序在d:\test目录下,现在运行这个程序后用GetCurrentDirectory得到的是d:\test。接着在程序里用CFileDialog来打开一个C:\test\test.txt文件后再调用GetCurrentDirectory,那么得到的szCurrentPath就是C:\test而不是d:\test。推荐用如下方法来得到当前程序所在目录比较安全:void
_splitpath(
const
char
*path,
char
*drive,
char
*dir,
char
*fname,
char
*ext
);函数来分解开始提到的_pgmptr,然后再用void
_makepath(
char
*path,
const
char
*drive,
const
char
*dir,
const
char
*fname,
const
char
*ext
);函数来对分解后的路径进行组合。这两个函数结合起来功能强大,使用灵活,基本上所有的有关目录和路径方面的操作都可以搞定,就是麻烦。
㈣ 关于c语言中如何打开文件
//zifu.txt文件只能由ASCII字符组成,否则会出现乱码
#include<stdio.h>
int main()
{
char str[200],a,b;
FILE *p;
int i;
if(NULL==(p=fopen("zifu.txt","r+")))
{
printf("文件打开失败!\n");
}
else
{
fscanf(p,"%s",str);
printf("你要替换的字符:");
a=getchar();
getchar();
printf("你要替换成的字符:");
b=getchar();
getchar();
for(i=0;str[i];i++)
{
if(a==str[i])
str[i]=b;
}
printf("%s\n",str);
fprintf(p,"%s",str);
fclose(p);
}
return 0;
}
㈤ 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语言程序中如何打开文件
while(fscanf(fp,"%c",&c),c!=EOF)
应改为
while (fscanf(fp,"%c",&c)!=EOF)
例如:
//---------------------------------------------------------------------------
#include <stdio.h>
int main(void)
{
FILE *fp=fopen("c:/a.txt","r");
char c=0;
while (fscanf(fp,"%c",&c)!=EOF)
putchar(c);
fclose(fp);
return 0;
}
//---------------------------------------------------------------------------
㈦ C语言中打开源文件、目标文件时,打开方式各是什么
C语言源文件格式 XXX.c 和XXX.h 格式, 用文本方式打开。 目标文件格式为 bin格式,需要用十六进制方式打开文件。
㈧ c语言如何打开文件
你只要把下面代码的file_path改成你要输出的文件就可以了。注意,一般window下的文件路径都是一个反斜杠,但是在file_name的字符串中,所有的反斜杠都写成两个反斜杠。比如
E:\abc\WTK\SW\source.txt
你要写成
E:\\abc\\WTK\\SW\\source.txt
#include <stdio.h>
#include <string.h>
main()
{
FILE *fp;
char ch;
char *file_path = "C:\\test\\myfile.txt";
if((fp=fopen(file_path,"r"))==NULL)
{
printf("\nSorry, Can't open the file! @_@\n");
exit(0);
}
else
{
while((ch=fgetc(fp))!=EOF)
{ printf("%c",ch); }
fclose(fp);
}
getch();
}
是否可以解决您的问题?
㈨ C语言中,打开文件的方式有哪些分别用什么字母表示
有好多方法,最直观的就是
fopen打开文件,然后用文件读写的一些方程写进去。
㈩ C语言中的打开文件
C语言中,文件FILE的概念:此前,我们所熟悉的输入与输出都只是涉及到键盘及显示器,但是完全不够;这时,解决的办法是:将这些需要记录的数据,记录到某些介质上,利用介质的存储特性,携带或永久保存数据,这些记录在外部介质上的数据的集合称为“文件”;
按照数据在介质上的存放方式,分为文本文件和二进制文件;
打开及关闭文件举例:
fopen(文件名,文件使用方式)
fclose(文件指针)