C语言中字符数据的输入与输出问题

时间:2024-04-13 点赞:52486 浏览:107807 作者原创标记本站原创

本文关于字符及函数及字符串方面的免费优秀学术论文范文,字符类有关论文范文集,与C语言中字符数据的输入与输出问题相关硕士学位毕业论文范文,对不知道怎么写字符论文范文课题研究的大学硕士、本科毕业论文开题报告范文和文献综述及职称论文的作为参考文献资料下载。

随着单片机技术的飞速发展C语言逐步成为单片机编程的重要语言,C 语言程序设计课程不仅是高校计算机专业必修课,也成为电子相关专业的一门重要的专业基础课程,在学习过程中C语言字符数据的输入与输出是教学的难点与重点之一,也是学生容易出错的知识点.通过教学实例重点分析C语言字符数据输入与输出易出错原因,提出解决办法,使教学更具针对性,有效提高课堂教学质量.

【关 键 词 】单片机 C语言 字符数据 输入 输出

C 语言是一种通用、灵活、结构化的计算机高级语言,能实现汇编语言的大部分功能,直接对硬件进行访问,用C语言编写的程序,其生成的目标代码质量高、运行效率高,故而在单片机编程中被广泛应用,因此C语言程序设计课程不仅是高校计算机专业必修课,也成为电子相关专业的一门重要的专业基础课程.C 语言学习中字符数据的定义分为单字符和多字符两类,而具体应用必须与数组结合,对初学者的学习造成困难,特别是字符型数据的输入与输出问题较多,是教学的难点与重点.通过教学实例重点分析C语言字符数据输入与输出易出错原因,解决C 语言中学习中字符型数据输入与输出过程中常见的问题.

1.C语言字符数据的基本概念

1.1 字符常量和字符变量

C 语言有丰富的数据类型,包括基本类型、构造类型、指针类型和空类型,其中基本类型中包含有字符型数据.字符型数据分常量和变量,字符常量是由单引号’’括起来的ASCII字符,如’a’.字符变量必须先定义后使用,如char c1;即定义了一个字符变量c1.字符型变量可以用来存放字符常量,且它只能存放一个字符,如c1等于’a’;.

1.2 字符串常量

C 语言中,字符串常量是由一对双引号” ” 引起来的字符序列,如”Intel”、“The C Program Language ”.C 语言中字符串一一位数组的形式存放在内存中,因此’A’和“A”所表达的意义不同,‘A’是单字符常量,在内存中只占1个字节,存放字符A的ASCII码,“A”是字符串常量,在内存占2个字节,其中一个字节存放A字符的ASCII码,另一个字节自动存放字符串结束标记“\0” .

1.3 字符数组

C 语言中只有字符串常量而没有字符串变量,字符串的存取操作必需借助字符数组来实现,而不能以变量的形式直接进行存取,存放一个字符串需要先定义一个字符型数组,而后将字符串中的字符逐个作为字符数组的数组元素进行操作.字符数组中一个元素只能存放一个字符,如 char a:表示定义了一个一维字符数组a,可存放5个字符,或存放最大长度为4的1个字符串(最后一个字符是字符串结束符‘\0’).字符数组元素的引用通常采用循环结构实现对数组元素的逐个操作.字符数组的初始化分为逐个字符给数组元素赋值和用字符串常量给字符数组初始化两种形式,由于逐个字符给数组元素赋值操作繁琐,实际编程中常用字符串常量给字符数组初始化.

2.字符数据的输入与输出

C语言提供了字符数据的输入与输出除了C语言提供的常用scanf()函数和printf()函数进行输入与输出操作,还提供了专用的字符输入函数getchar()和字符输出函数putchar()以及字符串输入函数gets()和字符串输出函数puts().


2.1 字符数据的输入

2.1.1 scanf 函数

scanf 函数的作用是输入若干个任意类型的数据,是一种格式输入函数,利用scanf函数给字符变量赋值应使用格式说明“%c”即可实现字符输入.用 scanf 函数输入其他类型的数据时,数据间可以用空格来分隔,而用回车表示输入结束,但用“%c”格式输入字符时,空格和“转义字符”都会作为有效字符输入,因此使用时容易出错.例如:scanf“(%c%c%c”,&c1,&c2,&c3);若要将字符’a’、’b’、’c’分别赋给变量c1、c2、c3,正确的输入方法是“abc”,如果输入“a空格b空格 c”,则c1等于’a’,c2等于’空格’,c3等于’b’,将产生错误.在连续使用两个及以上scanf 函数输入字符数据时最容易出现问题,有下列程序:

printf("输入两个整数:"); scanf("%d%d",&a,&b);

printf("输入两个字符:"); scanf("%c%c",&c1,&c2);

运行程序输入“5 空格8 HE”,结果是:a等于5,b等于8,c1等于’\n’,c2等于’H’,将产生错误,出现这种情况的原因是输入的第一个回车表示输入结束,但该回车被下一个scanf函数的第一个变量c1接收而成为换行符’\n’,而字符’H’赋给了变量c2,输入的字符’E’未被任何变量接收.解决此问题的办法是在第二个scanf函数的格式控制部分第一个“%c”前加一个空格,这样在输入时第一个回车就不会被变量c1接收了,问题得到解决.

2.1.2 getchar 函数

getchar 函数的作用是从终端(通常是键盘)输入一个字符,其函数值就是从键盘输入的字符,可将函数值赋给字符变量,如:char c1;c1等于getchar();程序运行到getchar函数时,等待用户从键盘输入字符,在键盘上输入“a”,则c1等于’a’.若是两个变量输入,程序如下:char c1,c2;c1等于getchar();c2等于getchar();想得到 c 1 等于 ’a ’,c 2 等于 ’b ’,程序运行后输入‘a ‘后输入就会结束,第二个字符’b‘无法输入,而此时 c1等于’a’,c2等于’\n’.正确的输入方法是在键盘上输入“ab”,此时c1等于’a’,c2等于’b’.由此可以得出,在使用getchar进行字符输入时,按回车键表示输入结束,但同时按回车键也产生一个转义字符’\n’,这个字符会被后面的 getchar 函数接收,因此利用连续多个getchar ()函数给多个字符变量赋值时应注意只在最后一个字符后面按回车键,其它字符连续输入,字符间不要添加任何符号,否则会产生错误. 2.1.3 gets()函数

gets()函数的作用是从终端输入一个字符串到字符数组中.如:char str1[13];gets(str);从键盘输入“How are you? ”,则数组 str1 的值为字符串“How are you?”.输入时以回车表示输入结束,这与 scanf 函数一致,但需要注意的是利用gets 函数输入字符串时,输入结束时所按的回车键会被转化为字符串结束标志’\0’,而利用 scanf 函数输入字符串时回车不会被转化为’\ 0 ’.

2.2 字符数据的输出

2.2.1 printf()函数

printf()函数的作用是输出若干个任意类型的数据,对不同类型的数据用不同的格式字符.d格式符以十进制整数形式输出、x格式符以十六进制数形式输出整数、c格式符以单个字符形式输出、s格式符以字符串形式输出、f格式符以小数形式输出实数.printf()函数输出时还可以在符号前面以m.n的形式控制数据显示的列数和精度.

2.2.2 putchar()函数

putchar() 函数的作用是向终端输出一个字符,字符内容可以是单字符常量、字符变量、ASCII码和转义字符.如:putchar (‘h’)、putchar(c1)、putchar (65)、putchar (‘\n’)将分别输出单字符h、字符变量c1、字符A和换行符.

2.2.3 puts() 函数

p u t s 函数的作用是将一个字符串(以’\ 0 ’结束的字符序列)输出到终端,在输出时将字符串结束标志’\ 0 ’转换成’\ n ’,即输出完字符串后换行,而用 printf 函数的“%s”格式输出字符串时不会将字符串结束标志’\ 0 ’转换成’\ n ’,如果需要换行必须书写语句 printf (“\n”)来实现.

3.结束语

在C语言程序设计中数据的输入与输出是最为常用的操作,而字符数据因其自身的特点在输入输出方面又具有一定的特殊性,一般情况下,scanf()和printf()、getchar()和putchar()、gets()和puts()配对使用,在学习过程中必须多实践,多练习,在实际编程过程中掌握有关字符数据输入与输出的方法,进而提高编程能力,掌握C语言程序设计的技巧.

相关论文

《数据结构》和《C语言》新教学模式

本文是一篇数据结构论文范文,关于数据结构类本科毕业论文范文,关于《数据结构》和《C语言》新教学模式相关函授毕业论文范文。适合数据结构。

c语言毕业文致谢范例

为您写身体健康毕业论文和职称论文提供身体健康相关大学毕业论文范文,与c语言毕业文致谢范例相关论文范文,包括关于身体健康及公司实习及科。

C语言程序设计教学方法

该文为关于实验教学相关研究生毕业论文开题报告范文,与C语言程序设计教学方法相关毕业论文格式,可作为论文格式专业实验教学论文写作研究的。

C++语言实验教学的探究

这篇实验教学论文范文属于地理教学免费优秀学术论文范文,实验教学方面有关毕业论文开题报告范文,与C++语言实验教学的探究相关教育教学论文。

计算机C语言编辑程序技巧

为您写计算机技术毕业论文和职称论文提供计算机技术类毕业论文的格式范文,与计算机C语言编辑程序技巧相关论文范文数据库,包括关于计算机技。

C语言学习过程中编程技巧的应用

此文是一篇语言论文范文,关于语言类论文例文,与C语言学习过程中编程技巧的应用相关毕业论文模板。适合不知如何写语言及学生及技巧方面的论。

基于C语言的哈夫曼编码的实现

本文关于数据结构及参考文献及工程技术方面的免费优秀学术论文范文,数据结构方面有关论文例文,与基于C语言的哈夫曼编码的实现相关学士学位。