错的好头疼
#include<stdio.h>#define LEN 30
void main()
{
FILE *P;
char filename;
char buffer,ch;
printf("please input filename:");
scanf("%s",filename);
if(!(p=fopen(filename,"wt+")))
{
printf("can't open this file!");
exit(1);
}
printf("please input a string:");
fgets(buffer,LEN,stdin);//stdin为间盘标准文件,用户从键盘输入的文件就存在这里。
fputs(buffer,p);
rewind(p);
ch=fgetc(p);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(p);
}
fclose(p);
printf("\n");
} 不知道哪里错了,求大神指教啊!!! 本帖最后由 浩fly 于 2013-10-14 13:23 编辑
#include<stdio.h>
#define LEN 30
void main()
{
FILE *P;
char filename;
char buffer,ch;
printf("please input filename:");
scanf("%s",filename);
if(!(p=fopen(filename,"wt+")))
{
printf("can't open this file!");
exit(1);
}
printf("please input a string:");
fgets(buffer,LEN,stdin);//stdin为间盘标准文件,用户从键盘输入的文件就存在这里。
fputs(buffer,p);
rewind(p);
ch=fgetc(p);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(p);
}
fclose(p);
printf("\n");
}
上述错误终于弄明白了,要在“printf("please input a string:");”后面加上一句ch=getchar();
注意:这一句是必须的!
因为在输入文件名后还从键盘输入了一个回车键。 从昨天晚上弄到今天下午,哎累死了。。。各种改写,最后还是反汇编整出来的。感觉小题大做了都。。。:cry
不过功夫不负有心人啊!呵呵
终于弄出来了啊! 本帖最后由 浩fly 于 2013-10-14 17:24 编辑
附上完美代码:
#include<stdio.h>
#define LEN 30
void main()
{
FILE* p;
char filename;
char buffer,ch;
printf("please input filename(and the root):");
scanf("%s",filename);
if(!(p=fopen(filename,"wt+")))
{
printf("can't open this file!");
exit (1);
}
printf("please input a string:");
ch=getchar();//必须要注意,这个一定要有的。
fgets(buffer,LEN,stdin);//stdin为间盘标准文件,用户从键盘输入的文件就存在这里。
fputs(buffer,p);
rewind(p);
ch=fgetc(p);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(p);
}
fclose(p);
printf("\n");
}
:victory: 本帖最后由 浩fly 于 2013-10-14 20:03 编辑
错了,应该是,注意P和p的区别:sleepy:
{:5_106:}楼主很给力啊。自己整出来的答案最有成就感了。哈哈。 。。看来已经解决了
页:
[1]