fgets()函数读取键盘,去掉换⾏符或丢弃多余的字符
在上⼀遍随笔中,我们知道可以⽤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;
}
}
return0;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论