C 无法打开d:驱动器中的文件
如何读取和写入不在bin目录中的文件,即不在C驱动器中的文件。C 无法打开d:驱动器中的文件,c,windows,file-handling,C,Windows,File Handling,如何读取和写入不在bin目录中的文件,即不在C驱动器中的文件。 我写了这段代码 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
我写了这段代码
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文件存在并且不是只读文件。我尝试了上面的代码,但没有收到任何错误。有几个可能的原因导致无法通过打开文件 要获取错误详细信息,请打印和/或致电和/或类似信息,例如:
#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;
}
#包括
#包括
#包括
内部主(空)
{
char filename[]=“d:/source.txt”;
FILE*fs=fopen(文件名,“w”);
if(NULL==fs)
{
perror(“fopen()失败”);
fprintf(stderr,“尝试打开文件“%s”时发生错误#%d:%s。\n”,
呃,不,
文件名,
斯特雷罗(埃尔诺));
}
...
返回0;
}
改用它来打印错误,它会更明确地告诉您出了什么问题。我认为您的斜杠是反斜杠。如果将/替换为\\(以便转义),会发生什么情况?“C驱动器”表示这是一台Windows计算机。在Windows中,所有路径都使用反斜杠写入。但是,由于C字符串中的反斜杠有特殊的含义,因此必须编写\`才能获得反斜杠。因此路径字符串应该是
d:\\source.txt`.@Lundin,但是Windows CRT不允许两个斜杠都作为路径分隔符吗?事实上,Windows似乎一直支持将前斜杠作为分隔符。例如,尝试在命令窗口中执行例如dir“c:/some/path”
(注意引号中的字符),您将看到它工作正常。问题可能是您没有对`D:`的写访问权限,这就是它失败的原因。但这只是一个猜测。您确实需要检查实际的错误。