武汉理工大学计其机学院信息技术票计算机程序设计基础C语言主讲教师:李民武汉理工大学Wuhan Universityof Technology
主讲教师:李 民
计算机程序设计基础C语言0字符型数组字符数组的输入/输出函数gets()/puts()武汉理工大学WuhanUniversityof Technology
计算机程序设计基础C语言 ⚫ 字符型数组 ➢ 字符数组的输入/输出函数 gets()/puts()
字符数组的输出gets(字符数组名)gets函数输入整个字符串puts(字符数组名)puts函数输出整个字符串注意:输入以回车为结束,能输入含空格的字符串,系统会自动把回车转成0输出时遇到\0结束输出,遇到\0自动换行char a[12];char s[3][15];for(i=o;i<3;i++)gets(a);gets(s[i]);puts(a) ;for(i=0;i<3;i++)puts(s[ij);
◼ gets函数输入整个字符串 ◼ puts函数输出整个字符串 注意: ✓ 输入以回车为结束,能输入含空格的字符串,系统会自动把回车转成\0 ✓ 输出时遇到\0结束输出,遇到\0自动换行 char a[12]; gets(a); puts(a); char s[3][15]; for(i=0;i<3;i++) gets(s[i]); for(i=0;i<3;i++) puts(s[i]); puts(字符数组名) gets(字符数组名)
gets函数的副作用:输入越界【例如】有定义: char a[12];有输入语句:gets(a);执行时输入:Iam a student.结果如何?解决方法:fgets(a,12,stdin)从标准输入设备获取最多12个字符(含回车字符)必须使用#include <stdio.h>
【例如】 有定义:char a[12]; 有输入语句:gets(a); 执行时输入:I am a student. 结果如何? ◼ 从标准输入设备获取最多12个字符 (含回车字符) ◼ 必须使用 #include <stdio.h> 解决方法: fgets(a,12,stdin);
忠告:不要混用scanf和getsint n;问:如果输入:char s[80];123.45Jprintf("输入一个整数:");Hellotscanf("%d,&n)://回车被保留会怎样?printf("输入一个字符串:");gets(s) ;printf("整数%d和字串%s",n,s);运行时想输入:字符串还没123J来得及输入Hellod运行结果:输入一个整数:123输入一个字符串:整数123和字串
int n; char s[80]; printf("输入一个整数:"); scanf("%d",&n);//回车被保留 printf("输入一个字符串:"); gets(s); printf("整数%d和字串%s",n,s); 123 Hello 输入一个整数:123 输入一个字符串:整数123和字串 问:如果输入: 123.45 Hello 会怎样? 字符串还没 来得及输入 运行结果: 运行时想输入: