c语言(I/O)问题

 #include <stdio.h>
  int main()
  {
  int i;
  char j;
  for(i = 0;i < 10;i++)
  {
  scanf("%c",&j);/*这里%前没有空格*/
  }
  }
  使用了空格控制符后:
  #include <stdio.h>
  int main()
  {
  int i;
  char j;
  for(i = 0;i < 10;i++)
  {
  scanf(" %c",&j);/*注意这里%前有个空格*/
  }
  }
  问什么两个程序输入的次数不同?

没有空格就可以不带空格的输入有空格就不能但是scanf尽量要带着空格,scanf第一个参数带着空格是可以默认过滤内存键盘缓冲区中上一次读入的垃圾值,否则还需要手动加fflush(stdin)强制清空,这样浪费了时间。而且有时你无法判断什么时候会读到垃圾,最好每个scanf语句都带着空格,因为几乎100%的情况下是需要带空格的输入的,否则可以scanf("[空格]%s",pStr);当不带空格,除非有很好的理由
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-26
首先, 没有空格, 那么输入10个字符(可以包含空格)就OK了
当你加了空格过后, 因为系统检测到scanf函数里面有空格, 所以, 自动将空格抵消, 这样就可能会出现输入次数不一样的情况
第2个回答  2013-10-26
楼上的说的很对例如,要想输入abcdefghij第一个程序只要这样输入就可以abcdefghij,输入了10次第二个程序要这样输入 a b c d e f g h i j输入每个字符时要先输入一个空格(其他字符也可以),所以输入次数要多。

单片机中一个I\/O信号的上升沿或下降沿在单片机中C语言怎么写,不用中...
不用中断只能用查询了。你只能写一个while循环,然后时刻判断IO电平。上一次循环是低电平,下次变成高电平了,就可以判断来了一个上升沿。注意信号上升时间和你的单片机时钟周期的关系,也就是说,信号上升沿要小于你查询两次所用的时间。如果信号你不能改变,那么你就需要纪录多次查询的结果,这样能识别...

C语言编程第四题选择
答案选C,你选的是对的,以下是理由:文件缓冲区即系统在读写程序时在内存中开辟的数据源与数据目标中间的一个用于保存完整数据内容的缓冲区域。目前C语言使用的文件系统分为缓冲文件系统(标准I \/ O)和非缓冲文件系统(系统I \/ O)。缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每...

C语言“流”是什么概念
C语言的I\/O系统为用户提供了一个接口,该接口与实际的存取设备无关。只是设备的一个抽象表示形式。这个抽象的接口称为流,实际的设备称为文件。C文件系统可以与各种设备一起使用,如打印机、硬盘、终端等,缓冲文件系统可以将每个设备转换成逻辑设备,即所谓的流。所有的流工作方式类似,所以很容易操作不...

C语言中文件输入\/输出是如何实现的?
在C语言中,输入和输出是经由标准库中的一组函数来实现的。在ANSI C中,这些函数被定义在头文件;中。标准输入\/输出 有三个标准输入\/输出是标准I\/O库预先定义的:stdin标准输入 stdout标准输出 stderr输入输出错误 以上内容参考:百度百科-c语言 ...

C语言中流指什么,不要复制,用自己的理解解释一下,感谢了
而C语言中的I\/O流能分为两种:文本流,二进制流。很容易看出文本流控制很二进制流控制的区别。你用TC,fopen打开一个MP3或者别的32位文件,然后读取,会发现用文本流打开后,文件只能读到开头一点点。因为32位音乐文件有很多的'00'数据,文本流会把它当做文件结束符而结束读取。而二进制流打开方式...

C语言输入输出语句
c语言输入输出函数 C语言输入输出函数有很多,标准 I\/O 函数中包含了如下几个常用的函数:scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf 等.int scanf(const char *format, arg_list)scanf 主要从标准输入流中获取参数值,format为指定的参数格式及参数类型...

单片机C语言编程时如何判断LED的状态,即亮还是灭?
通常LED是用I\/O脚控制的,是输出控制的,即LED的亮灭是程序控制的,什么时候亮,什么时候灭,都是有目的控制的,那LED的状态肯定是已知的,怎么控制,怎么回头就不知道啦?就算是真不知道(还是装不知道),也可以通过查询控制LED的引脚状态而得知LED的状态。例,sbit LED=P1^0; \/\/输出0为亮 控...

c语言中的整型数字怎么求小数点后的位数
两个大于号为向右移位,同理,两个小于号为二进制向左移位。(即乘以多少或除以多少)例如:int main(){ int a = 16;cout<<(a<<4)<<endl;cout<<(a>>4)<<endl;\/\/但是a的值并没有改变 a >>= 1;\/\/此时a的值改变了 cout<<a<<endl;cin>>a;return 0;} 输入的结果分别为256,1;...

C语言 函数有哪些 中文翻译都是什么意思
1.i\/o函数 (1)scanf函数:int scanf(const char format…..);从标准输入流stdin中按格式format将数据写到参数表中;若操作成功,返回写到参数表中的参数个数,否则返回eof;注意以下几点:①scanf函数没有精度控制 如出现:scanf(“%6.2f”,&a);是绝对错误的 ②在以%c格式输入字符数据时,所有输入的...

红外遥控器同一个键控制一个I\/O口,第一次开,第二次关,比如P0^1开启关闭...
,如 IrValue[2]=0xff;(如果没有按键是 0xff的话)第三,最正确的做法是,收到遥控后,额外提供一个标志位(如 IR_UpdateFlag),程序识别标志位后,进行按键选择,处理完按键后,清除标志位。这样可以避免程序重复、多余执行按键选择(虽然是无效的按键,但那也是选择),可以提高系统执行效率!

相似回答