首先,这是我的第一个堆栈溢出问题,如果我格式化错误,请原谅我。
我是C的初学者,我在文件i / o的书中有一点意义。下面的代码,打算将行打印到test.txt,不会创建新的txt文件或......做任何事情。
我在Windows上运行代码块16.01。此代码是否为另一个操作系统设计?
#include <stdio.h>
#include <stdlib.h>
main() {
FILE *fp;
fp = fopen("/tmp/test.txt", "w+");
fprintf(fp, "This is testing for fprintf...\n");
fputs("This is testing for fputs...\n", fp);
fclose(fp);
}
好的,所以删除斜杠会使它工作。在原始代码中,它是'fopen(“/ tmp / test.txt”,“W +”);' 这不应该在文件夹tmp中创建文件吗?
答案 0 :(得分:3)
尝试从文件名中删除正斜杠。你似乎正在做正确的事情,斜线可能是问题。如果没有,请告诉我们。
编辑:当我写评论时,你的fopen使用&#34; /test.txt"而不是&#34; /temp/test.txt" ;,你有&#34; temp&#34;在运行应用程序的目录中创建的文件夹?如果没有,请尝试创建它。或者完全删除它并尝试在运行应用程序的目录中创建文本文件。
答案 1 :(得分:1)
在Windows中使用双//
来浏览目录。
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp;
/*
file path in windows should be like this= C:\\users\\r.maurya\\Desktop\\Downloads\\file.txt
*/
fp = fopen("C:\\users\\r.maurya\\Desktop\\Downloads\\file.txt", "w+");
fprintf(fp, "This is testing for fprintf...\n");
fputs("This is testing for fputs...\n", fp);
fclose(fp);
return 0;//Optional, On success of program
}