看看是哪里不对啊,今天刚学了点文件编程就编不对。
编译没错,文件包括文件夹都创建了,但是为什么buf里的内容不写在ptest.txt文件里,直接就在屏幕上就出来了,后面还跟着那个success!
我就一直等,一直等,直到有人给我找出错来。
#include
#include
#include
void main()
{
int pf;
char buf[]={"dfljsfjlsdk"};
int length;
int cf;
if(pf=creat("./ptest.txt",777)<0)
{
printf("error for creat!");
}
else
if(pf=open("ptest.txt",00070)<0)
{
printf("error for open!");
}
else
if(length=write(pf,buf,sizeof(buf))<=0)
{
printf("error for write");
}
else
{
mkdir("ctest",S_IRWXU);
if(cf=creat("./ctest/ctest.txt",777)<0)
{
printf("error for creat ctest.txt!");
}
else
printf("success!");
}
}
xue_1103 于 2010-11-18 10:12:13发表:
貌似if(length=write(pf,buf,sizeof(buf))<=0)
少了一对括号吧!
theset 于 2010-11-18 08:49:46发表:
帮顶
foxicel 于 2010-11-18 01:16:35发表:
4# zhangwenbo.k
我是说你可以把你的程序反过去看。出现了scuess.
那么程序执行了这个程序段
else
{
mkdir("ctest",S_IRWXU);
if(cf=creat("./ctest/ctest.txt",777)<0)
{
printf("error for creat ctest.txt!");
}
else
printf("success!");
}
没有执行其上一个if 段
if(length=write(pf,buf,sizeof(buf))<=0)
{
printf("error for write");
}
其它的我就没有细看了,你可以看看。如果写数据到文件里了,不会出现success的。
zhangwenbo.k 于 2010-11-18 01:06:32发表:
2# foxicel
那为什么buf里的字符串竟然出现在屏幕上了,要是不往文件里写也不能出现在屏幕上啊
foxicel 于 2010-11-18 00:47:48发表:
1# zhangwenbo.k
发不上来图片呀,不好意思呀。
foxicel 于 2010-11-18 00:39:19发表:
[i=s] 本帖最后由 foxicel 于 2010-11-18 00:40 编辑 [/i]
在屏幕上就出来了,后面还跟着那个success!
那说明程序执行了这个段
else
{
mkdir("ctest",S_IRWXU);
if(cf=creat("./ctest/ctest.txt",777)<0)
{
printf("error for creat ctest.txt!");
}
else
printf("success!");
}
没有执行
if(length=write(pf,buf,sizeof(buf))<=0)
{
printf("error for write");
}
所以没有写数据到文件里。
再看看前面的条件是怎么写的,可能是条件判断那里出了问题。
说真有,格式有点不太易读呀。