用C写文件

用C写文件,c,C,在C编程中,我学习了文件io,并运行了示例代码: #include <stdio.h> main() { FILE *fp; fp = fopen("E:\\tmp\bae.txt", "w+"); fprintf(fp, "This is testing for fprintf...\n"); fputs("This is testing for fputs...\n", fp); fclose(fp); return 0; } #包括 main() { 文

C编程中,我学习了
文件io
,并运行了示例代码:

#include <stdio.h>

main()

{

 FILE *fp;

 fp = fopen("E:\\tmp\bae.txt", "w+");
 fprintf(fp, "This is testing for fprintf...\n");
 fputs("This is testing for fputs...\n", fp);
 fclose(fp);

 return 0;
}
#包括
main()
{
文件*fp;
fp=fopen(“E:\\tmp\bae.txt”、“w+”);
fprintf(fp,“这是对fprintf的测试…\n”);
FPUT(“这是对FPUT的测试…\n”,fp);
fclose(fp);
返回0;
}
在这里,代码工作正常,
fputs()
返回-1,这意味着代码工作正常。我已经在E:drive上创建了一个目录
tmp
,但是这个代码没有创建文件
bae.txt
。'

有人能告诉我为什么会这样吗?

而不是

 fp = fopen("E:\\tmp\bae.txt", "w+");
使用


as
\
在字符串中具有特定的含义。

文件名中有控制序列
\b
,这是一个退格。使用序列“\`获得一个反斜杠,就像第一个反斜杠一样。您还应该检查文件是否可以打开,如果不能打开,则采取相应的措施。并且
fputs
返回值为-1并不意味着“代码工作正常”;相反,它表示一个错误。这与
printf
(或任何其他函数)完全无关。预处理器只是将
\b
替换为它所代表的任何控制字符(我相信是退格)。是的,对不起。虽然我最终编写了printf,但我并不是有意将其与printf关联。即使
\b
没有“字符串中的特定含义”,问题仍然会存在(也就是说,问题是由于缺少反斜杠,不管后面是什么字符)。
 fp = fopen("E:\\tmp\\bae.txt", "w+");