首页 技术 正文
技术 2022年11月6日
0 收藏 335 点赞 916 浏览 813 个字

fgets注意事项

这是yjy的习题库,中途我在使用fgest时颇费了一点心思,特此记录一下。

fgets注意事项

#include <stdio.h>#include <string.h>#include <stdlib.h>int main (void){    char (*arry)[];    int n,tmp,i,j;    char *find;    scanf("%d",&n);    getchar();/* sancf 输入的时候会有换行符输入,该函数是为了吃掉\n,因为fegets遇到\n就结束*/    arry=(char (*)[])malloc(n*sizeof(char)*);    for(i=;i<n;i++) {
/* fgets 读到count-1个字符或者遇到\n就终止,所以这里选择6
* 6-1=5 由于只会输入4个有用字符(例如为abcd),最后会有\n,此时字符数组中有
* 我输入的4个字符a b c d + \n \0 有\n是因为fgets要吸收输入时的\n,且fgets会
* 自动在最后加上\0。
* NOTE:使用fegts,输入第二个参数时,建议为输入的有效字符+2,例如我这里要输入4个
* 有效字符,为了容错\n和\0
*/
if(fgets(arry[i],,stdin)==NULL) { return -; }
if((find=strchr(arry[i],'\n'))!=NULL) { *find='\0';
}
/* 如果我们把6改成5,则需要把该屏蔽放开。
* 因为如果为5,当输入abcd四个字符时,feget就会结束,此时还有\n在输入缓存区
* 所以需要getchar();吃掉\n。最后的arry[i]中是a b c d \0 结尾。
*/
/* getchar(); */ } for(i=;i<n;i++) { for(j=;j</;j++) { tmp=arry[i][j]; arry[i][j]=arry[i][-j]; arry[i][-j]=tmp; } printf("%s\n",arry[i]); } free(arry); return ;}

fgets注意事项

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,564
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,413
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,186
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,822
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905