读书人

新手又遇到点小疑点来请问老师们

发布时间: 2013-10-29 12:07:57 作者: rapoo

新手求助,又遇到点小问题来请教老师们
为什么word2里面会有换行呢?

                                                  c                                              
[解决办法]
getchar得到上个回车符
[解决办法]
在word输入之前把清下缓存。把之前输入的回车清掉
[解决办法]
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp1,*fp2,;
char ch;
if((fp1=fopen("word1","w"))==NULL){
printf("error\n");
exit(1);
}
printf("input word1:");fflush(stdout);
rewind(stdin);
while((ch=getchar())!='!'){
fputc(ch,fp1);
}
fclose(fp1);
if((fp2=fopen("word2","w"))==NULL){
printf("error\n");
exit(1);
}
printf("input word2:");fflush(stdout);
rewind(stdin);
while((ch=getchar())!='!'){
fputc(ch,fp2);
}
fclose(fp2);
return 0;
}

[解决办法]
在给word1输入时,输入完"!"后,你敲了个回车。
这个回车记录在了你输入word2的内容中。
想要去掉这个回车,可以这么写

#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp1,*fp2;
char ch;
if((fp1=fopen("word1","w"))==NULL){
printf("error\n");
exit(1);
}
printf("input word1:");
while((ch=getchar())!='!'){
fputc(ch,fp1);
}
fclose(fp1);

getchar(); //吸收回车

if((fp2=fopen("word2","w"))==NULL){
printf("error\n");
exit(1);
}
printf("input word2:");
while((ch=getchar())!='!'){
fputc(ch,fp2);
}
fclose(fp2);
}

读书人网 >C++

热点推荐