首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2013-10-29 
新手求助,又遇到点小问题来请教老师们为什么word2里面会有换行呢?c[解决办法]getchar得到上个回车符[解决

新手求助,又遇到点小问题来请教老师们
为什么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);
}

热点排行