为什么c语言scanf()函数同时输入字符型和整型数据,输入数据错误?

C语言scanf函数同时输入字符型数据和整型数据,第一个字符输入后再按逗号键该字符就成了汉字,而且之后输入的数据也不对。
#include
int main()
{
char a, b;
int m, n;
double x;
printf("输入对应的数值 a='a',b='A',m=5,n=10,x=18.51:\n");
scanf("%c,%c,%d,%d,%lf", &a, &b, &m, &n, &x);
printf("a=%c,b=%c,m=%d,n=%d,x=%lf\n", a, b, m, n, x);
return 0;
}
C语言初学者,希望大神解答,十分感谢!!!!

c++
0

2个回答

看下你是不是输入了全角(中文)的逗号,scanf必须是严格匹配的。

0
qq_44701666
qq_44701666 原来是这样啊,弄了半天没弄出来。太感谢了!
4 个月之前 回复

为什么一定要同时输入呢。。。。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
scanf在输入整型数据和字符型数据时的不同
/*C语言中读取整型数据的小程序段*/ #include int main() { int n,i; int array[25]; while (scanf("%d",&n),n!= EOF) { for ( i = 0; i < n; i++ ) scanf("%d",array+i); for ( i = 0; i < n; i++ ) printf ("%d "
c语言里面用scanf连续输入字符型数据常见问题
#include <stdio.h> #include <stdlib.h> int main() { char i,j; printf("put in i:"); scanf("%c",&i); printf("i=%c\n",i); printf("put in j:"); scanf("%c",&j); printf("j=%c\n",j
c语言:用scanf函数输入数据,举例并分析错误原因
用scanf函数输入数据,举例并分析错误原因用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。问在键盘上如何输入。程序:#includeint main(){ int a, b; float x, y; char c1, c2; scanf("a=%d b=%d",&a,&b); scanf("%f %e",&x,&y); scanf("%c
连续scanf输入字符型数据时,出现跳过输入问题
运行以下代码 #include &amp;lt;stdio.h&amp;gt; main() { char a,b,c; scanf(&quot;%c&quot;,&amp;amp;a); scanf(&quot;%c&quot;,&amp;amp;b); scanf(&quot;%c&quot;,&amp;amp;c); printf(&quot;%c\n %c\n %c&quot;,a,b,c); } 会出现以下错误,程序没有进行预想中的连续
关于C中scanf对包含字符串的不同类型数据输入的笔记
这是一个较易被初学者弄晕的一个坑。 先看看scanf的相关知识,scanf的格式为: scanf(格式控制, 地址列表) 关于格式控制,scanf允许以&quot;%d, %d, %d&quot;与&quot;%d%d%d&quot;格式,初学的时候,我们常常直接使用,却没有去深究过这两种格式有什么差别。 在C中,对于&quot;%d%d&quot;和&quot;%d, %d&quot;两种输入格式的差别: (1)在输出方面,若这两种变量存放的值是123和456为例,即 in...
scanf()输入float型数据时出错
我们这里用的是VC++6.0的编译环境,下面我们来讨论一下C语言中用scanf()输入float型数据是出错问题。 >>出错代码例举: >出错代码1(含有结构体): #include struct student { float a[3]; }stu[5]; int main() { scanf("%f",&stu[0].a[0]); return 0; } >出错代码2(
scanf函数输入多个字符串时间隔符的失效及解决办法
先看下边这段代码#include<stdio.h> int main() { char test1[40],test2[40]; scanf("%s,%s",test1,test2); printf("%s%s",test1,test2); return 0; }在学习过程中尝试使用”,”隔开scanf中两个字符串的输入.尝试输入如下 hello,world
C语言——使用scanf函数时需要注意的问题
转自:http://blog.csdn.NET/wayne92   scanf函数我曾经在这个函数上犯过不少错误,也看到别人犯过的错误,记下来,提醒自己不要重蹈覆辙了。如果对你有用,那就更好了:)如果你发现文章中有错误,欢迎你不吝赐 教。希望和大家一起学习! 曾经错的几个地方:(xpsp2,vc6.0环境下) 1.空白符问题 [cpp] view pla
C语言中用scanf函数输入字符时,为什么要在输入控制符%c前面加空格?
空格确实不是必须的,但有了空格就可以忽略你输入的空格! 例如:scanf(" %c" ,&c); 你输入了' a'(a前面有个空格),a就能被c接受。 但控制符前如果没空格,那c就接受了空格,这个可以防止误操作,忽略空格输入,接受第一个非空格输入!
使用scanf字符输入时遇到的问题
今天用scanf给一字符数组循环复制时遇到了问题 #include"stdio.h" int main() { int n =10; char a[10]; int i =0; for(;i { printf("(i=%d)",i); scanf("%c",&a[i]); } a[9] = '\0'; printf("%s",a); return 0; } 发现
scanf()函数的参数输入类型不匹配问题
http://blog.csdn.net/21aspnet/article/details/174326 scanf()函数的参数输入类型不匹配问题  这是我在csdn论坛上见到的问题,这个错误有时候会让人莫名其妙。  #include   main()  {  int a=123;  char c= 't ';  printf( "input/n "); 
scanf()中的%c 不能正常输入的问题
#include int main() { char a; int b; scanf("%d",&b); scanf("%c",&a); /******************************/ printf("%d",b); printf("%c",a); return 0; /* 应该输入一个整型一个字符型变
简谈C语言中的scanf()输入函数的坑点之一
1.序言 有句话说:出来混的,迟早都要还的。现在写的这个内容本是大一的时候早就 应该弄清楚的,但是直到现在,我才若有所悟(或许现在的理解也是错误的,但是我觉得这个不要紧,因为我心里已经有了正确答案。因为这一生就是一个不断学习的过程,不断重新认知的一个过程。) 今天在写一道pat题时,遇到一个问题,就是输入的数据和输出的数据不匹配,我就在思考这个问题,因为之前也有遇到这样的情况,我当时也就是匆匆
用scanf函数检验输入非法字符
用scanf函数检验输入非法字符 标签(空格分隔): C 双学位高级语言程序设计 编程错题 C输入输出 在规定输入数据格式之后,scanf函数可以根据数据类型确定数据是否合法。如下面这个例题 根据scanf()的返回值判断scanf()是否成功读入了指定的数据项数,使程序在用户输入123a时,能输出如下运行结果: 123a↙ Input error! 输入格式: "%d %d"
C语言中scanf( )函数的数据检查出问题后处理方法
C语言中scanf( )函数的数据检查问题 问题描述 在C语言利用scanf( )函数进行输入时,如果输入数据的格式不符合格式控制符,scanf( )函数不会读取该值。该值会一直存在在缓存中,导致出现一些问题。如下面的程序段所示,本意为输入学生的年龄,必须填写int型,如果填错了,会出现提示,让重新输入。 printf(&amp;quot;input age:&amp;quot;) status = scanf(...
Scanf函数的输入问题
scanf() 怎样读取输入? scanf() 开始读取输入以后,会在遇到的第一个空白字符空格(blank)、制表符(tab)或者换行符(newline)处停止读取。 假定使用了一个%d说明符来读取一个整数。scanf() 函数开始每次读取一个输入字符,它跳过空白字符(空格、制表符和换行符)直到遇到一个非空白字符。因为它试图读取一个整数,所以scanf() 期望发现一个数字字符或者一个符号(+或
C语言中一个程序多次使用scanf函数
今天复习遇到了一个函数主体使用多次scanf函数的情况。但是在实际运行中发现只有第一个scanf正常赋值了,之后的scanf函数均未赋值,被赋值为回车。 代码: #include #include double cal(double a1, double b1, double a2, double b2) { double t; // t = sqrt((a1 - ) * (a1
关于scanf_s输入字符串错误问题
关于scanf_s输入字符串错误问题 int main() { char a[20]; scanf(“%s”,a,20); /a,20中的 ,20 是用来指定缓冲区大小的参数,表示最多读取n-1个字符,不加的话,编译器会出错,无法进行正常的字符串输入/ printf(“输入的字符串是:%s\n”,a); return 0; } 必须要加上字符串在用在缓冲区的大小的...
C语言scanf语句输入跳过造成死循环的解决办法
现象描述:在编写C语言程序时,需要使用scanf语句从键盘上输入一个整型的数时,当错误的输入了字符时,scanf语句就好像不会执行,但从键盘输入其他数字又无法获取。 问题分析:当定义scanf语句接收整型数值时,它就会跳过所有的非数字的字符,专接收数字。当输入了字符时,字符就会留在缓冲区,只要缓冲区又字符,scnaf就会去读,一读发现不是数字,就会跳过,只有当输入缓冲区没有字符了才等待你去输入,...
关于c语言scanf函数中格式化输入中加入空格的一个问题
考虑如下一小段程序: #include&amp;lt;stdio.h&amp;gt; int main() { int i = 0; int num[5]; for(i = 0;i &amp;lt; 5;i++){ scanf(&quot;%d &quot;,&amp;amp;num[i]); printf(&quot;num[%d]:%d\n&quot;,i,num[i]); } retu...
C学习之路-scanf输入char类型直接跳过,变量定义说明!
一:定义一个char类型变量的时候,如果没有初始化为常量,默认值为空字符,对应ASCII为0,所占内存为1个字节 二:定义一个int类型变量的时候,如果没有初始化为常量,默认值为 0,所占内存为4个字节 三:定义一个数组类型变量的时候,如果没有初始化,每个元素的值都是随机的,所占内存为单个类型所占字节*数组长度    1、声明时,使用 {0} 初始化;    2、使用memset;   ...
scanf输入字符和数字的问题
scanf是c语言中的常用函数,使用前导入stdio.h这里讲一些经常遇到的问题。首先要明白scanf的本质。当我们需要调用scanf输入的时候,输入的字符送到键盘缓冲区,然后scanf从中读取所规定的字符,比如我们scanf中要求的是%d,即数字型,那么属于数字的内容将被读取,当遇到不属于数字的内容时,扫描终止,比如我们输入的是5s5555,那么只有第一个5能接收,如果输入8   555,那么也...
关于C语言中printf()后的scanf()不执行问题,解决方法
在每个最后不带\n的printf后面加fflush(stdout); 在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);
C语言使用scanf_s函数输入的正确姿势
            刚开始学习C语言,第一次写博客,有点小紧张,文章有不足之处欢迎指正。          一、scanf_s函数格式控制字符串中除了格式声明之外,如果有其他字符,则在输入数据时要在对应位置上输入与这些字符相同的字符。例如以十进制格式输入1,2,3:scanf_s(&quot;%d,%d,%d&quot;,&amp;amp;a,&amp;amp;b,&amp;amp;c);在输入数据时,应该输入1,2,3而不是1 2 3...
scanf函数中的格式字符串及注意事项
scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。 scanf函数的一般形式为:  scanf(“格式控制字符串”, 地址表列); 格式字符串的一般形式为:%[*][输入数据宽度][长度]类型。其中有方括号[]的项为任选项。 其各项意义为: 1.类型: 表示输入数据的类型  d
在C语言中为什么scanf输入语句,要在变量名前加&呢?
首先在C语言中,输入变量的语法是:scanf("格式控制","变量地址") 可以看出,第二个的格式为变量地址。 在C语言中,变量在定义之后,就会在计算机内存中非配一块空间给这个变量,该空间在内存中的地址称为变量的地址。 为了得到变量的地址,需要在变量前加一个&(称为取地址运算符),也就是“&变量名”的写法。 补充:常见数据类型变量的scanf格式符 数据类型 格
scanf()函数对字符输入的一些问题
在c库中包含了很多输入函数,scanf()是最通用的一个,因为它可以读取不同格式的数据。scanf()使用空白(换行符,制表符,空格)把输入分成多个字段。依次把转换说明和字段匹配时跳过空白。但是在字符的转换说明时。根据%c,scanf()会读取每个字符,包括空白。 关于scanf()函数我们要知道以下几点: 1、用户输入的字符,会以ASCII码形式存储在键盘缓冲区; 2、每调用一次scanf...
格式化输入输出浮点数据的细微问题(C标准:printf,scanf)
刚开始学C语言的时候,看到用scanf输入浮点数据的对应字符串如下:float : %fdouble : %lf而printf输出的时候却都是统一的:float / double : %f你也许曾经跟我一样,用%lf输出过double,结果是正常的,因为%lf直接被当作了%f了。但是这时候问题就来了,问题1.C语言也算是强类型的语言,两种不同类型怎么能统一到同一种输出上呢?问题2.既然输出都可以统
scanf格式控制符
scanf格式控制的完整格式: %  *  m  l或h  格式字符 ①格式字符与printf函数中的使用方式相同,以%d、%o、%x、%c、%s、%f、%e,无%u格式、%g格式。 ②可以指定输入数据所占列宽,系统自动按它截取所需数据。如: scanf(“%3d%3d”,&a,&b); 输入:123456 系统自动将123赋给a,456赋给b。 ③%后的“*”附加说明符,用来表示跳
C语言中(字符串)输入scanf()、gets()、fgets()以及getchar()、getc()函数的联系与区别
scanf()函数的输入基于获取“单词”,如果使用%s格式,字符串以第一个非空白字符开始读入,读到(但不包括)下一个空白字符(可以是空格、制表符或者换行符)。使用scanf()把一个字符串读进一个字符数组时,不使用&amp;amp;。scanf()函数返回成功读入项目的个数,若没有任何合乎要求的项目读入,scanf()返回0,当它检测到文件结尾时,返回EOF(#define指令把EOF的值定义为-1)。 ...
C语言中的标准输入输出 scanf()函数
C语言中,从键盘读入是使用函数scanf(); 例如:从键盘读入一个int类型的数据10; int n; scanf(&amp;quot;%d&amp;quot;, &amp;amp;amp;n); int m,n; scanf(&amp;quot;%d %d&amp;quot;, &amp;amp;amp;m, &amp;amp;amp;n); scanf()函数接收两类参数,其中,%d表示输入数据的类型,&amp;amp;amp;是取地址符。这两类参数可以不只有一种,但是两类参数数量必须一一
scanf输入无效
在下近日在学习C语言,做习题时发现了一个小问题。这是一道关于货车载物收费的问题,大体上已经做出来了,但是在对基础收费即p进行输入时,用scanf输入时发现无效,把p打印出来值依然没有任何变化。其代码已放在下面,有问题的scanf用黄色标记了。希望有大佬出来帮忙解决一下。谢谢大家。#include&amp;lt;stdio.h&amp;gt;void main()//Transport fee{ double  p...
01 [c语言][重要的知识点]printf函数和scanf函数的数据输出与读取问题
------- android培训、java培训、IOS培训、期待与您交流! ---------- 这是刚学习C语言的时候遇到的最早的一个问题,是以前从来没有接触过的一个全新知识点,在这里作为博客日志记下来,方便以后翻阅.   绪论 我们知道,在c语言编程中,printf函数是其标准函数库stdio.h中的标准输出函数,scanf函数是其标准数据库stdio.h中的标准输入
C语言中用scanf连续输入两个…
原文地址:C语言中用scanf连续输入两个字符类型的问题作者:Hoper昨天用C编程,遇到一个关于scanf的细节问题,假如运行如下程序: #include int main(void){   char a[100];   char k;   int i,loc;   printf("请输入字符串:");   scanf("%s",a);   printf("n请输入要插入的字符:");   
C语言中利用scanf语句输入多个值的问题
今天利用共同体变量写了一个小程序要求:有若干人员的数据,其中有学生和教师。学生的数据包括姓名、号码、性别、职业、班级。教师数据包括姓名、号码、性别、职业、职务。要求用同一个表格来处理。 编译通过后运行程序,发现输出有问题,通过调试发现问题出现在scanf语句中,原本的scanf语句为scanf("%d %s %c %c",&person[i].num,&person[i].name,&perso
C语言---关于scanf读入字符串的一些问题
scanf是C语言中常用的标准输入输出函数,它的常规用法是scanf(“输入格式”,输入地址),scanf从输入缓冲区取入数据按照指定的“输入格式”存储到指定的“输入地址”。 但是有一类问题通常令人头疼,那就是字符串的读入,此处仅仅讨论使用scanf读取字符串的一些问题。 理论上你只需要定义一个字符指针,然后scanf每次读入字符存储到该指针所指的存储空间,之后指针值自动加1. 所以,我们就有了下面
C语言 scanf函数的机理和常规的格式字符串
scanf函数的机理和常规的格式字符串 一.scanf函数的机理   我们更仔细地研究 scanf()怎样读取输入。  假定使用了一个%d说明符来读取一个整数,scanf()函数开始每次读取一个输入字符,它跳过空白字符(空格、制表符和换行符)直到遇到一个非空白字符。因为它试图读取一个整数,所以scanf()期望发现一个数字字符或者一个符号(+或者-)。如果它发现了一个数字或一个符
c总结 使用scanf输入字符串问题
  学习c时经常遇到字符串的输入问题,使用scanf输入时总是会或多或少的遇到错误,总结一下我遇到过的情况 同时输入字符和字符串   刚开始编写时可能大多数会这样写:    (ch1为字符类型的数组,数组名即数组的首地址,所以不要&amp;amp;)  当输入  字符  回车时会出现下面情况: 还没有输入字符串输入就结束了。当我们需要调用scanf输入的时候,输入的字符送到键盘缓冲区,然后s...
C语言scanf输入格式理解与总结
scanf函数的一般形式 scanf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。与printf函数相同,C语言也允许在使用scanf函数之前不必包含stdio.h文件。scanf函数的一般形式为:     scanf(“格式控制字符串”, 地址表列); 其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量
本实例使用 scanf("%d%d%d",&a,&b,&c); 从键盘中获得任意 3 个数。在输入数据时,在两个数据之间以一个或多个空格间隔,也可以用 Enter 健、Tab 键,不能用逗号作为两个数
本实例使用 scanf(&quot;%d%d%d&quot;,&amp;amp;a,&amp;amp;b,&amp;amp;c);从键盘中获得任意 3 个数。在输入数据时,在两个数据之间以一个或多个空格间隔,也可以用 Enter 健、Tab 键,不能用逗号作为两个数据间的分隔符。如果用格式输入函数 scanf(&quot;%d,%d,%d&quot;,&amp;amp;a,&amp;amp;b,&amp;amp;c) 输入数据,两个数据之间要用“,”做间隔。 ...
文章热词 统计学稳健估计opencv函数 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 为什么学python 为什么学习产品经理

相似问题

2
为什么c语言scanf()函数同时输入字符型和整型数据,输入数据错误?
1
为什么有时候cin.getline() 不能用而cin.get()可以用啊
4
问一个很愚蠢的基础问题,p=p->next链表循环里,为什么这样不会覆盖掉链表的值啊
2
VS2017下opencv_4.0.1使用SIFT算法时为何总是在detect函数(detectAndCompute也是)处报内存错误?
3
怎样定义两个函数,并在主函数中输出结果,下面代码有什么错误
1
利用指针写一函数,实现一长字符串中两短字符串交换,从主函数输入待替换的长字符串以及替换前后两个子串?
5
求问一下为什么C++中在类的成员函数中使用switch语句对enum类型做分支选择时会提示请输入标识符?
3
大佬们看看为什么move这个函数没有执行呢,谢谢!
3
C++为什么下面代码会是个死循环,求解释?
1
PTAL1-049 天梯赛座位分配 题目 打印正确但是评测显示错误
2
当我用CodeBlocks来输出353的cher时为什么出现的是a
4
为什么scoket连接云服务器的22端口能连通,但是连接自己定义的TCP:8888等等端口就连不通
2
归并排序问题,代码是按照教学视频打的,为什么会出错,显示一些奇奇怪怪的数字
1
c++为什么在宏定义大于4万以后就会出错?
5
c语言循环 选择 1 执行1次就不循环了 有人能帮忙看看哪错了吗
1
ffmepg sws_scale函数在处理4K视频时,速度较慢
2
//求助帖,求助帖,练习c++时的一个错误
1
MFC CEdit编辑框中获得输入焦点后的白色区域怎么去掉?
1
用C语言编杨辉三角为什么会这样
4
求助大佬:MFC检测扩展显示器时回调函数错误怎么解决。