首页 > 代码库 > fgets()函数读取键盘,去掉换行符或丢弃多余的字符
fgets()函数读取键盘,去掉换行符或丢弃多余的字符
在上一遍随笔中,我们知道可以用fgets()函数来代替不安全的gets()函数。fgets函数中的第二个参数限制了读取的个数。
上篇文章也提到,fgets是会读取回车换行符的。有时候我们并不希望在字符串中存在换行符。有的时候我们在一行中多输入了几个字符,而这几个字符并不是我们想要的。这时可以写一个小程序解决这个问题
下面看程序(来自于C Primer Plus 第六版):该程序的功能是:读取输入行,删除存在字符串中的换行符,如果没有换行符,则丢弃数组装不下的字符。
#include <stdio.h>#include <stdlib.h>#define NUM 5#define SIZE 10int 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()函数读取键盘,去掉换行符或丢弃多余的字符
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。