當前位置:首頁 » 編程語言 » c語言中打開文件方式正確
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中打開文件方式正確

發布時間: 2022-04-11 10:42:21

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(文件指針)