“int getchar读取int(void) 函数从屏幕读取下一个可用的字符,并把它返回为一个整数”,真的

本帖子已过去太久远了,不再提供回复功能。分析:例如 int a[100];
输入:1,2,3,4,5,6(回车换行)
结果:数组的0-5号元素分别是上述值,打印出来,之后程序结束。
难点:获取int型的数字输入不难,scanf(&%d&,&n);这个只能得到int值,会自动滤出空格和回车换行,如何判断输入结束?
错误代码:
&pre name=&code& class=&html&&while(scanf(&%d&,&a[i++]) != '\n' )
这个没有办法获取到最后的结束标志,一直在循环中。
scanf(&%d&,&a[i++] );
if( getchar() == '\n')
} 了解C程序的执行方式:编译运行,程序阻塞在循环中的第一句 scanf(&%d&,&a[i++]),等待键盘输入,输入完成,输入内容放在键盘缓冲区,enter键按下,触发执行。同时enter键也是键盘输入,也会进入键盘缓冲区。假设输入是1 2 3 4回车。scanf读走1,getchar()读走空格,最后getchar()读走回车换行符,break。
TIPS:了解getchar(),原型&int getchar(void);函数的返回值为用户输入的第一个字符的ASCII码,若出错返回-1,且将用户输入的字符回显到屏幕。如果用户在按回车键之前输入了不只一个字符,其他字符会保留在键盘缓冲区中,等待后续getchar()调用读取。也就是说,后续的getchat()调用不会等待用户按键,而是直接读取缓冲区中的字符,直到缓冲区的字符读取完毕后,才等待用户按键。
【说明】getchar()非真正函数,而是getc(stdin)宏定义。(引自C语言中文网)
读入型函数具有阻塞性。
尝试理解这个程序的输出结果
#include&stdio.h&
int main()
int data[40];
int i = 0;
int pos = 0;
printf(&please input a series num:\n&);
scanf(&%d&,&data[pos] );
printf(&%d&,data[pos]);
printf(&%c&,ch=getchar());
//这个读的是什么?回车还是空格
printf(&%c&,ch = getchar());
} 键盘缓冲区也是有指针的,输入1 2 3 4 5回车换行
2和3之间的那个空格被scanf(&%d&,&data[pos])跳过了,跳过了就不会再回头读那个空格。
本文已收录于以下专栏:
相关文章推荐
自己是个新手,写一些程序供初学者和新手方便使用。
C语言输入一串数据到数组中,用空格隔开回车结束
c++输入一行数字串。从屏幕读入一行以空格分隔的数字,每个数字的长度不一定一样,有正数有负数,要求将这些数字分别存放到数组中,实现方法的分析。
int stack[100];
int total,n;
void dfs(int index)
if(total==n)
这次读取的就是上一篇中的original文件的每一行到一个整数数组中。     使用getline(缺省吧回车符endl作为行标记)分别把每一行读入到一个字符串数组,在这个字符数字最后加上/0构成一个...
scanf()函数接收输入数据时,遇以下情况结束一个数据的输入:(不是结束该scanf函数,scanf函数仅在每一个数据域均有数据,并按回车后结束)。 
        ① 遇空格、“回车”、“跳格...
问题来源/question/.html?oldq=1#reply-box-
void main(...
折半查找—-在一个游戏数组中查找具体的数字n。
编写int binsearch(int x,int v[],int n);
Data为要查找的数组,x为查找数据值,start为查找范围起始,end...
统计字符,数字和空格
int main()
int number = 0, letter = 0, spece = 0;//对计数变量的初始化
char ch = 0;
他的最新文章
讲师:姜飞俊
讲师:汪木铃
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)极客学院团队出品 · 更新于
C 输入 & 输出
当我们提到输入时,这意味着要向程序填充一些数据。输入可以是以文件的形式或从命令行中进行。C 语言提供了一系列内置的函数来读取给定的输入,并根据需要填充到程序中。
当我们提到输出时,这意味着要在屏幕上、打印机上或任意文件中显示一些数据。C 语言提供了一系列内置的函数来输出数据到计算机屏幕上和保存数据到文本文件或二进制文件中。
C 语言把所有的设备都当作文件。所以设备(比如显示器)被处理的方式与文件相同。以下三个文件会在程序执行时自动打开,以便访问键盘和屏幕。
标准文件文件指针设备 标准输入stdin键盘 标准输出stdout屏幕 标准错误stderr您的屏幕
文件指针是访问文件的方式,本节将讲解如何从屏幕读取值以及如何把结果输出到屏幕上。
getchar() & putchar() 函数
int getchar(void) 函数从屏幕读取下一个可用的字符,并把它返回为一个整数。这个函数在同一个时间内只会读取一个单一的字符。您可以在循环内使用这个方法,以便从屏幕上读取多个字符。
int putchar(int c) 函数把字符输出到屏幕上,并返回相同的字符。这个函数在同一个时间内只会输出一个单一的字符。您可以在循环内使用这个方法,以便在屏幕上输出多个字符。
请看下面的实例:
#include &stdio.h&
int main( )
printf( "Enter a value :");
c = getchar( );
printf( "\nYou entered: ");
putchar( c );
当上面的代码被编译和执行时,它会等待您输入一些文本,当您输入一个文本并按下回车键时,程序会继续并只会读取一个单一的字符,显示如下:
&b&Enter a value :&/b& this is test
&b&You entered:&/b& t
gets() & puts() 函数
char gets(char s) 函数从 stdin 读取一行到 s 所指向的缓冲区,直到一个终止符或 EOF。
*int puts(const char s) 函数把字符串 s 和一个尾随的换行符写入到 stdout**。
#include &stdio.h&
int main( )
char str[100];
printf( "Enter a value :");
gets( str );
printf( "\nYou entered: ");
puts( str );
当上面的代码被编译和执行时,它会等待您输入一些文本,当您输入一个文本并按下回车键时,程序会继续并读取一整行直到该行结束,显示如下:
&b&Enter a value :&/b& this is test
&b&You entered:&/b& This is test
scanf() 和 printf() 函数
*int scanf(const char format, ...) 函数从标准输入流 stdin 读取输入,并根据提供的 format** 来浏览输入。
*int printf(const char format, ...) 函数把输出写入到标准输出流 stdout **,并根据提供的格式产生输出。
format 可以是一个简单的常量字符串,但是您可以分别指定 %s、%d、%c、%f 等来输出或读取字符串、整数、字符或浮点数。还有许多其他可用的格式选项,可以根据需要使用。如需了解完整的细节,可以查看这些函数的参考手册。现在让我们通过下面这个简单的实例来加深理解:
#include &stdio.h&
int main( )
char str[100];
printf( "Enter a value :");
scanf("%s %d", str, &i);
printf( "\nYou entered: %s %d ", str, i);
当上面的代码被编译和执行时,它会等待您输入一些文本,当您输入一个文本并按下回车键时,程序会继续并读取输入,显示如下:
&b&Enter a value :&/b& seven 7
&b&You entered:&/b& seven 7
在这里,应当指出的是,scanf() 期待输入的格式与您给出的 %s 和 %d 相同,这意味着您必须提供有效的输入,比如 &string integer&,如果您提供的是 &string string& 或 &integer integer&,它会被认为是错误的输入。另外,在读取字符串时,只要遇到一个空格,scanf() 就会停止读取,所以 &this is test& 对 scanf() 来说是三个字符串。君,已阅读到文档的结尾了呢~~
c语言程序设计编程题汇总,c语言面试题大汇总,c语言编程题,c语言编程实例100题,c语言编程练习题,c语言程序题,c语言程序设计题库,c语言编程软件,c语言编程,c语言经典编程282例
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
c语言程序设计编程题汇总
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 void main和int main 的文章

 

随机推荐