新手求助,又遇到点小问题来请教老师们
为什么word2里面会有换行呢?
[解决办法]
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);
}