码迷,mamicode.com
首页 > 其他好文 > 详细

fgets()函数读取键盘,去掉换行符或丢弃多余的字符

时间:2016-10-01 17:11:32      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

在上一遍随笔中,我们知道可以用fgets()函数来代替不安全的gets()函数。fgets函数中的第二个参数限制了读取的个数。

上篇文章也提到,fgets是会读取回车换行符的。有时候我们并不希望在字符串中存在换行符。有的时候我们在一行中多输入了几个字符,而这几个字符并不是我们想要的。这时可以写一个小程序解决这个问题

下面看程序(来自于C Primer Plus 第六版):该程序的功能是:读取输入行,删除存在字符串中的换行符,如果没有换行符,则丢弃数组装不下的字符。

#include <stdio.h>
#include <stdlib.h>
#define NUM 5
#define SIZE 10
int main(int argc,char* argv[])
{
    char src[NUM][SIZE];
    printf("请输入,空行表示结束\n");
    int i=0;
    while(    (  fgets(src[i],SIZE,stdin) ) !=  NULL    &&   src[i][0]!=\n    )
    {
        int j=0;
        while(  (src[i][j] != \n)   && (src[i][j]  !=   \0 )  )
            j++;
        if(src[i][j] ==  \n)
            src[i][j]=\0;
        else
        {
            while( getchar() !=\n  )
                continue;
        }



        printf("输入为:%s\n",src[i]);
        i++;
        if(i>=5)
        {
            break;
        }
    }
    return 0;
}

 

fgets()函数读取键盘,去掉换行符或丢弃多余的字符

标签:

原文地址:http://www.cnblogs.com/qingergege/p/5925850.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!