在上一遍随笔中,我们知道可以用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=;
while( ( fgets(src[i],SIZE,stdin) ) != NULL && src[i][]!='\n' )
{
int j=;
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>=)
{
break;
}
}
return ;
}

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

  1. PHP按行读取文件 去掉换行符"\n"

    第一种: $content=str_replace("\n","",$content); echo $content; 或者: $content=str_rep ...

  2. JS 小工具 MYSQL WHERE IN条件 去掉换行符(列转行)

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  3. python 按每行读取文件怎么去掉换行符

    python按每行读取文件后,会在每行末尾带上换行符,这样非常不方便后续业务处理逻辑,需要去掉每行的换行符,怎么去掉呢?看下面的案例: >>> a = "hello wor ...

  4. gets和从键盘输入换行符

    i was wrong! 虽然setbuf可以让程序自己管理缓冲,但是像getchar,gets这些标准IO函数还是要通过隐藏的stdin进行操作,而stdin是啥呢?还是一个FILE*,而FILE* ...

  5. Oracle除替换去掉换行符的方法

    特殊符号ascii定义 : 换行符和回车符都要干掉. 制表符 chr(9) 换行符 chr(10) 回车符 chr(13) select replace(replace(列名,CHR(10),''), ...

  6. sql中去掉换行符和回车符

    sql 中,char(13),char(10)或nchar(13),nchar(10)可表示SQL中的回车换行符,但是会以空格的形式显示.replace(replace(字段名,char(10), ' ...

  7. 参数化时按行读取txt文件,如何去掉换行符"\n"

    参数化按行读取txt,每行默认自带了回车换行操作,导致脚本报错,故而按行读取时,需要去掉默认的'\n' #coding=utf-8 from selenium import webdriver imp ...

  8. python按行读取文件,如何去掉换行符"\n"

    for line in file.readlines(): line=line.strip('\n')

  9. WinForm------TextEdit控件去掉换行符

    //将换行转为空格 string str = this.DetailEdit.Text.Replace("\r\n"," ");

随机推荐

  1. SQL Server中CROSS APPLY和OUTER APPLY应用

    1.什么是Cross Apply和Outer Apply ? 我们知道SQL Server 2000中有Cross Join用于交叉联接的.实际上增加Cross Apply和Outer Apply是用 ...

  2. TFS (Team Foundation Server) 2013集成Maven构建

    Team Foundation Server原生就支持跨平台的构建,包括Ant和Maven两种构建方式.通过配置构建服务器,连接TFS源代码库,可以实现持续集成构建,自动检测代码库健康状况,进而实现自 ...

  3. Linux中连接mysql执行sql文件

    数据量小的时候可以把sql语句内容粘贴执行,但是文件很大的时候,这样执行效率很慢很慢,需要使用source执行sql文件 1.客户端连接mysql数据库 [root@iZbp1bb2egi7w0uey ...

  4. 10-08常用的TIME和DATE函数以及各个函数对应的头文件

    系统时间和日期函数:     #include <time.h>     char *asctime(const struct tm *tm);//将tm中存放的信息转换为标准格式    ...

  5. django drf 权限permission

    https://www.django-rest-framework.org/api-guide/permissions/#custom-permissions from django.shortcut ...

  6. Mysql修改字段类型

    mysql 修改字段长度 alter table news  modify column title varchar(130); alter table 表名 modify column 字段名 类型 ...

  7. 201621123023《Java程序设计》第9周学习总结

    一.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 二.书面作业 1. List中指定元素的删除(题集题目) 1.1 实验总结.并回答:列举至少2种在List中删除 ...

  8. Delphi开发安卓程序的感受

    Delphi XE7开发安卓程序,界面开发速度非常快,这是eclipse无法比的,还有就是界面自适应能力很棒,我在不同版本和尺寸的设备中测试,运行良好,这些设备包括:三星I9100(安卓2.3:不到5 ...

  9. PHP header函数设置http报文头示例详解以及解决http返回头中content-length与Transfer-Encoding: chunked的问题

    最近在服务器上,多媒体与设备(摄像头)对接的时候,总是发生错误导致设备崩溃,抓包发现响应头不对,没有返回length,使得摄像头立即崩溃.找了一下资料,改了一下响应头就好了. //定义编码 heade ...

  10. Django-DRF-视图的演变

    版本一(基于类视图APIView类) views.py: APIView是继承的Django View视图的. from .serializers import UserSerializers #导入 ...