-1
如何讀取和寫入不在bin目錄中的文件,該文件不在C驅動器中。
我寫了這個代碼
無法打開d:驅動器中的文件
fs=fopen("d:/source.txt","w");
if(fs==NULL)
{
puts("Unable to open file");
}
它輸出「無法打開文件」。有人能幫助我嗎?
如何讀取和寫入不在bin目錄中的文件,該文件不在C驅動器中。
我寫了這個代碼
無法打開d:驅動器中的文件
fs=fopen("d:/source.txt","w");
if(fs==NULL)
{
puts("Unable to open file");
}
它輸出「無法打開文件」。有人能幫助我嗎?
FILE *fs= fopen("d:/source.txt","w");
if(fs==NULL)
{
printf("can't open");
}
if (fs!=NULL)
{
fputs ("Opened successfully",fs);
fclose (fs);
}
確保source.txt文件存在並且不是隻讀的。我試過上面的代碼沒有得到任何錯誤。
有幾種可能的原因導致文件無法通過fopen()
打開。
要獲取詳細的錯誤信息打印出來errno
和/或致電perror()
和/或strerror()
例如像這樣:
#include <stdio.h>
#include <string.h>
#include <errno.h>
int main(void)
{
char filename[] = "d:/source.txt";
FILE * fs = fopen(filename,"w");
if (NULL == fs)
{
perror("fopen() failed");
fprintf(stderr, "Error #%d occurred when trying to open file '%s': %s.\n",
errno,
filename,
strerror(errno));
}
...
return 0;
}
使用['perror'(HTTP://en.cppreference。 com/w/c/io/perror)而不是打印錯誤,它應該更具體地告訴你什麼是錯誤的。 –
我認爲你的斜線是倒退的。如果你用\\替換/(這樣它會被轉義)會發生什麼? – templatetypedef
「C驅動器」表示這是一臺Windows機器。在Windows中,所有路徑都使用反斜槓書寫。但是由於C字符串中的反斜槓有特殊的含義,所以你必須編寫'\\'來得到一個。所以路徑字符串應該是'd:\\ source.txt'。 – Lundin