当前位置: 代码迷 >> C语言 >> [求助]文本文件中字符的添加问题
  详细解决方案

[求助]文本文件中字符的添加问题

热度:401   发布时间:2007-10-21 13:15:24.0
[求助]文本文件中字符的添加问题
下面这个文件有点问题.偶实在是不知道哪出了问题-_-!请大家帮帮忙看看!指点一下.
程序可以正确地读文件,但添加文字后就读不正确了.
比如,原来是:abcdefg
添加的是:hij klmn
它显示的是:abdcefghij
就是遇到空格的时候就不读了-_-!怎么把我输入的字符全都显示出来?
蓝色的地方有否有不对?

#include<stdio.h>

main()
{
char fname[80],atest[256],ch;
int n;
FILE *fp;

printf("\nPlease input the file path:\n\n");
gets(fname);

if((fp=fopen(fname,"r"))==NULL)
{
printf("File %s can't opened\n",fname);
return 0;
}
printf("\nThe test is:\n\n");

/*读输入的文件,并显示出来*/
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
printf("\n");

fclose(fp);

printf("\nDo you want to continue the test?\n\nPress 'Y' continue or press 'N' to exit!\n");

/*按Y添加文字,按N退出*/
while(1)
{
n=getch();
getch();

switch(n)
{
case'y':goto add;
case'n':return 0;
}
}

/*开始添加文字*/
add:if((fp=fopen(fname,"ab+"))==NULL)
{
printf("File %s can't opened\n",fname);
return 0;
}

printf("\nPlease continue the test:\n\n");
scanf("%s",atest);
fputs(atest,fp);
rewind(fp);
printf("\n\nThe new test is:\n\n");

ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
printf("\n\n");
fclose(fp);
}

[此贴子已经被作者于2007-10-23 15:03:01编辑过]

搜索更多相关的解决方案: 文本文件  字符  

----------------解决方案--------------------------------------------------------
蓝色在?
----------------解决方案--------------------------------------------------------
以下是引用yangzhifu在2007-10-21 13:20:27的发言:
蓝色在?

不好意思!刚忘了换浏览器了!firefox2.0的,本论坛好像有些不支持,我换了颜色它也显示不出来.现在换回IE的了.


----------------解决方案--------------------------------------------------------
我后面的读文件和前面的读文件的语句相同.为什么后面读文件的诗句会有问题呢?
----------------解决方案--------------------------------------------------------
自己帮自己顶上来.不想让它沉下去啊~~~~
----------------解决方案--------------------------------------------------------
scanf("%s",atest);//遇见空格就结束输入了

换成gets(atest);
----------------解决方案--------------------------------------------------------
aoaoaoao,谢谢啦~~~
问题已经解决.原来前面的知识没学好~~~
----------------解决方案--------------------------------------------------------