c語言fopens
❶ c語言 fopen_s的問題
fopen_s打開的文件不能共享。如果其他地方打開的該文件沒有關閉的話,fopen_s應該是打不開的。
在help裡面搜一下fopen_s的描述。
❷ C語言字元串操作及fopen的使用問題
首先Windows下的目錄是下斜杠\,另外在C中需輸入兩個\\才能得到\,建議用c++的string加fstream操作:
string
filename("D:\\PhAB\\plot\\src\\");
filename+="abc.txt";
ifstream
file;
file.open(filename.c_str());
char*
str=new
char[100];
file.getline(str,num);
file.close()
不懂的可以問我,或者google
❸ c語言fopen怎麼用
fopen一般與buf搭配使用,通過與fgets函數配合使用,將文件中的字元串讀到buf中,這樣達到讀出文件內容的目的代碼如下:
FILE tf=NULL;//定義一個文件指著,用於判斷fopen是否打開成功,並初始化為空;
char buf[1024]={0};//定義一個長度為1024的數組,用於存放文件的內容;
tf=fopen("c:example.txt","r");//打開c盤指定文件,並以只讀的形式打開,避免破壞原文件,將fopen的返回值放在指針tf中,若打開成功,則返回成功的指針,打開不成功則返回空;
if(tf != NULL)//判斷是否成功,不等於NULL則表示成功;
{
if(fgets(buf,1024,tf) != NULL)//將指向c盤文件的指針的內容賦給buf,長度為1024,並判斷是否獲取成功;
{
printf("buf=%s ",buf);//將成功獲取的字元串顯示在屏幕上;
}
}
fclose(tf);//將已打開的文件關閉;
(3)c語言fopens擴展閱讀:
fopen的工作原理
FILE *fp;
fp=fopen("filename.txt","w");
首先檢測filename.txt是否存在,如果不存在則在磁碟 創建該文件,然後在內存開辟區域(應該是緩沖區)准備寫該文件
調用fclose時,將內存中的內容寫入到磁碟中去
測試(filename.txt不存在):
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp1,*fp2;
fp1=fopen("filename.txt","w");
if(fp1==NULL)
{
printf("fp1 open failed!/n");
}
else
{
printf("fp1 open success!/n");
}
fp2=fopen("filename.txt","r");
if(fp2==NULL)
{
printf("fp2 open failed!/n");
}
else
{
printf("fp2 open success!/n");
}
fclose(fp1);
fclose(fp2);
return 0;
}
輸出:
fp1 open success!
fp2 open success!
說明文件操作不是互斥的,而且以寫方式打開文件,如果文件不存在,先在磁碟創建該文件
加入寫入語句:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp1,*fp2;
fp1=fopen("filename.txt","w");
if(fp1==NULL)
{
printf("fp1 open failed!/n");
}
else
{
printf("fp1 open success!/n");
fputs("abcdef",fp1);
}
fp2=fopen("filename.txt","w");
if(fp2==NULL)
{
printf("fp2 open failed!/n");
}
else
{
printf("fp2 open success!/n");
fputs("ABC/n",fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
打開filename.txt文件:
ABC
f
說明後關閉的,刷新了磁碟數據
參考資料來源:fopen-網路
❹ c語言問題 vs2017 說fopen不可以要用fopen_s,用了fopen_s又格式錯誤
帶_s的是微軟定義的安全函數,它的參數和不帶_s的不同,比不帶_s的多一個。
初學者可以不用管這個,依然用不帶_s的標准函數版本,只需要在程序最開始寫一行
#define __CRT_SECURE_NO_WARNINGS
即可禁用這一錯誤。
❺ C語言中的fopen函數的具體實現是怎麼樣
fopen(a,b),意思是打開一個文件名字為a的文件
❻ c語言 fopen函數真的不安全嗎
fopen函數,可能被多個進程同時打開文件,進行讀寫操作,此時文件內容可能失去順序性。fopen_s函數沒有這個問題,只要前一次文件打開後還沒有關閉文件,後一個程序就無法打開這個文件。
❼ 求問用VC編譯C語言程序中fopen_s的具體使用方式
fopen_s函數的話:
FILE*f;
fopen_s(&f,"<文件名.txt>","w");
即可。
❽ c語言,fopen_s的第一個實參應該怎麼寫FILE**pFILE是啥
你說的這個函數沒有用過,不過一般在打開文件的時候都會返回一個文件描述符,其實就是返回一個指針,返回指針的方式有兩種
1)返回值
2)參數傳遞:寫法應該是
FILE fp;// 多重指針要注意內存分配的問題,我這里是在stack中分配空間,也可以在heap中分配
fopen_s(&fp...
❾ c語言 為什麼fopen函數被認為不安全,要用fopen_s替代
這個提示一般出現於VS裡面,但是不代表不安全。按照我的理解可能是後邊這個函數不需要顯示的關閉文件描述符。