新手上路 怎样利用C语言在D盘上创建一个文本文件
#include "stdio.h"main()
{char ch;
FILE *p;
if((p=fopen("D:\\file_a.dat","w"))==NULL)
{printf("can not open this the file");
exit(0);
}
ch=getchar();
while(ch!='@')
{ putc(ch,p);
ch=getchar();
}
fclose(p);
if((p=fopen("D:\\file_a.dat","r"))==NULL)
{printf("can not open this the file");
exit(0);}
ch=getc(p);
while(ch!=EOF)
{putchar(ch);
ch=getchar(p);
}
}
这个程序始终编译不过,但我查不出错误。是不是在D上创建文本文件错了?望热心的人帮助指点迷惑!
----------------解决方案--------------------------------------------------------
我运行你这个程序没问题啊,在D盘创建了一个叫file_a.dat的文件
----------------解决方案--------------------------------------------------------
还有你最后一句ch=getchar(p);什么意思?
getchar这个宏有参数吗?
----------------解决方案--------------------------------------------------------
ch=getchar(p);里面的p去掉.
getchar()是个写入一个字符.
我还是新手.
----------------解决方案--------------------------------------------------------
我查了stdio.h文件
getchar函数是这样定义的:
=====================================
#define getchar() getc(stdin)
=====================================
所以getchar只是用getc函数向屏幕输出(stdin是写屏幕缓冲区),
是没有参数的
----------------解决方案--------------------------------------------------------
原来如此啊!谢啦
----------------解决方案--------------------------------------------------------
while(ch!='@')是什么东东...
是while(ch!='\n')的吧,不然怎么结束?
ch=getchar(p);
改为ch=getchar();
exit(0)//最好用exit(1),表示错误退出
fclose(p)//应该在最下面再加一个
----------------解决方案--------------------------------------------------------
不对啊
我把ch=getchar(p);改成了ch=getc(p); 程序如下,但还是通过不了啊!在VC++ 6。0下运行,错误提示为C:\Documents and Settings\wan\3.cpp(7) : error C2065: 'exit' : undeclared identifier
C:\Documents and Settings\wan\3.cpp(23) : warning C4508: 'main' : function should return a value; 'void' return type assumed
执行 cl.exe 时出错.
程序
#include "stdio.h"
main()
{char ch;
FILE *p;
if((p=fopen("D:\\file_a.dat","w"))==NULL)
{printf("can not open this the file");
exit(0);
}
ch=getchar();
while(ch!='@')
{ putc(ch,p);
ch=getchar();
}
fclose(p);
if((p=fopen("D:\\file_a.dat","r"))==NULL)
{printf("can not open this the file");
exit(0);}
ch=getc(p);
while(ch!=EOF)
{putchar(ch);
ch=getc(p);
}
}
----------------解决方案--------------------------------------------------------
VC ++用exit();
要包含头文件
stdlib.h
error C2065: 'exit' : undeclared identifier
//exit()没有定义.
DEV C++中就可以不加stdlib.h
是把ch=getchar(p);//dev c++我的通不过...
改成ch=getchar();
----------------解决方案--------------------------------------------------------