<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>
作者:曹忠明,华清远见嵌入式学院讲师。
在学习C语言的时候,printf()是我们学到的第一个函数,相信“hello world”这个例子大家都不会陌生吧,接着就是scanf()这个函数了,这个函数的功能是格式输入,它的函数原型是:
int scanf(const char *format,…);
这个函数的基本用法这里就不说了,这里介绍一些这个函数使用中常见的问题及解决方法:
第一,连续输入两个或多个字符的时候,第二次输入直接跳过了如:
int main()
{
char a,b;
scanf(“%c”,&a);
scanf(“%c”,&b);
return 0;
}
输入 a回车 然后就退出了。
这个问题有很多说法有说是缓冲区没有清除,有说stdin这个流的问题,这里我们不去追究,这里介绍几个解决这种问题的方法:
int main()
{
char a,b;
scanf(“\n%c”,&a);
scanf(“\n%c”,&b);或 scanf(“ %c”,&b);%c前有空格
return 0;
}
这次再编译一下就没有问题了。
第二,使用scanf()函数输入一句话的时候,如:
int main()
{
char string[50] ;
scanf(“%s”,string);
printf(“%s\n”,string);
return 0;
}
输入:hello world!
结果:hello
显然这个结果没有达到我们的要求。
解决方法:
int main()
{
char string[50] ;
scanf(“%[^\n]”,string);
printf(“%s\n”,string);
return 0;
}
重新编译一下,没有问题了吧!
这里如果要是连续输入多个语句的话也会出现连续输入字符的那种问题,当然解决方法也相同了。
这里是最常见的几个问题,可能还有其他的解决方法,希望和大家相互交流,能力有限有问题希望大家多多指教。
分享到:
相关推荐
Linux运维-嵌入式物联网开发教程-C语言的scanf函数.mp4
这个函数的基本用法这里就不说了,这里介绍一些这个函数使用中常见的问题及解决方法: 第一,连续输入两个或多个字符的时候,第二次输入直接跳过了如: int main() { char a,b; scanf(“%c”...
6-数据输入scanf函数.pdf
http://blog.csdn.net/sismvg/article/details/9123689 看这篇文章
C语言中scanf函数使用时的常见问题.pdf
C语言中使用scanf()函数常见问题解析
该程序是我写的博客“一起talk C栗子吧(第三十八回:C语言实例--你了解scanf吗)”的配套程序,共享给大家使用
(一)基本介绍 ... 使用scanf函数输入一个字符变量。Char a; scanf(“%c”,&a); ②. 同时输入多个值。Scanf(“%d,%d”,#1,num2); ③. Scanf(“%d\n”,&a);//在内部不能使用\n转义字符,否则没完
scanf输入容易出现错误,主要有三点。
解决VS2015、VS2013、VS2012中使用scanf/printf 等函数时。编译无法通过所产生的错误。 通过在项目属性中加入 _CRT_SECURE_NO_WARNINGS 即可解决这个问题。 编译器编译时的错误如下: 严重性 代码 说明 项目 文件...
(2条消息) scanf返回值被忽略的原因及其解决方法_灶星闪闪的博客-CSDN博客(2).url
通过实例分析了产生这种问题的原因,提出了解决方法。 1 scanf()函数输入float型数组遇到的问题在程序设计中,数组是我们经常使用的数据结构。在数组元素的输入输出时,我们常常利用循环结构,并用循环控制变量控制数组...
SCANF 函数 使用方法
【ASP.NET编程知识】VS2015使用scanf报错的解决方法.docx
可以使用pip命令来安装: ``` pip install scanf ``` 安装完成后,我们可以在Python代码中导入scanf库: ``` from scanf import scanf python的scanf函数全文共3页,当前为第1页。 ``` python的scanf函数全文共3页,...
摘 要:本文从scanf 函数使用的多个方面(格式字符及其附加格式说明字符、输入数据的格式、格式说明的分隔符、输入项的使用、格式说明与输入项的对应)介绍scanf函数使用的方法及其注意事项,以使读者正确、有效地...
采用STM32F429IGT6单片机,KeilMDK5.32版本 使用SysTick系统滴答定时器进行延时 LED_R、LED_G、LED_B分别为PH10,PH11,PH12 Key1为PA0,Key2为PC13 KEIL5下载配置有FLASH与SRAM 收发共用一个缓冲区 I2C使用DMA与AT...
c代码-while(scanf("%d%d", &i, &j) == 2) 和 while(~scanf("%d%d",&a,&b)) 的差别
一步解决在Visual Studio 2022中使用scanf()函数的问题,为啥出现这个问题呢?那是因为VS认为scanf()函数是不安全的,可以使用scanf_s()代替,但是scanf_s()是VS自己提供的函数,非标准C提供的函数,只能在VS中使用...
中山大学牛人总结的scanf函数的技巧,看了之后对scanf函数理解会更加深刻。