精华内容
下载资源
问答
  • 1、有一很严重的错误,输入字符数组的两个scanf("%d %s %c %c",&person[i].num,&person[i].name,&person[i].sex,&person[i].job);scanf("%s",&person[i].category.position);2、把这两行中...

    1、有一个很严重的错误,输入字符数组的两个

    scanf("%d %s %c %c",&person[i].num,&person[i].name,&person[i].sex,&person[i].job);

    scanf("%s",&person[i].category.position);

    2、把这两行中字符数组输入时前面的&符号去掉,对字符数组输入本身就是地址,不要加&,改成这样

    scanf("%d %s %c %c",&person[i].num,person[i].name,&person[i].sex,&person[i].job);

    scanf("%s",person[i].category.position);

    3、其他的也没有什么错误,记着输入时候,那几个值之间用一个空格隔开,用scanf()函数输入的时候,本质是,你给scanf一个地址,这个函数会根据你输入的地址把,输入缓冲区中的数据放在指定地址处

    4、像int ,char,double,long,float这些基本类型,再分配空间的时候,只是给他们一个空间,所以用scanf()输入的时候,要加&取地址符号,才能给他们赋值

    5、然而char *,char [],这些本身是一块区域的首地址,本身就是地址,所以用scanf时,不用加&因此,输入里面不需要加的只有,person[i].name,person[i].category.position两个,其他的都是基本类型,因此都需要加

    扩展资料:

    优缺点

    1、简洁紧凑、灵活方便

    C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

    C语言的 Hello World 程序

    2、运算符丰富

    C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

    3、数据类型丰富

    38dbb6fd5266d01604d169c1992bd40734fa350a?x-bce-process%3Dimage%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_jpg

    C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。

    4、表达方式灵活实用

    C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,其程序设计更主动、灵活。它语法限制不太严格,程序设计自由度大,如对整型量与字符型数据及逻辑型数据可以通用等。

    5、允许直接访问物理地址,对硬件进行操作

    由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。

    6、生成目标代码质量高,程序执行效率高

    C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编程序生成的目标代码效率低10%~20%。

    7、可移植性好

    C语言在不同机器上的C编译程序,86%的代码是公共的,所以C语言的编译程序便于移植。在一个环境上用C语言编写的程序,不改动或稍加改动,就可移植到另一个完全不同的环境中运行。

    8、表达力强

    C语言有丰富的数据结构和运算符。包含了各种数据结构,如整型、数组类型、指针类型和联合类型等,用来实现各种数据结构的运算。C语言的运算符有34种,范围很宽,灵活使用各种运算符可以实现难度极大的运算。

    C语言能直接访问硬件的物理地址,能进行位(bit)操作。兼有高级语言和低级语言的许多优点。它既可用来编写系统软件,又可用来开发应用软件,已成为一种通用程序设计语言。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。

    展开全文
  • c语言scanf无法输入值

    千次阅读 2021-05-21 04:42:37
    满意答案xueer12005推荐于 2018.02.28采纳率:42%等级:8已帮助:111人scanf()是C语言标准库中的输入函数,声明包含在stdio.h文件...是一阻塞式的函数,等用户输入完毕后,则将赋值给变量,至此函数调用完毕。敲...

    满意答案

    dcebd7a0de6265b6ccae5ead692f1eab.png

    xueer12005

    推荐于 2018.02.28

    dcebd7a0de6265b6ccae5ead692f1eab.png

    采纳率:42%    等级:8

    已帮助:111人

    scanf()是C语言标准库中的输入函数,声明包含在stdio.h文件中,因此要使用该函数,必须加载#include头文件。当执行到scanf函数时,程序就暂停等待用户输入,该函数只接受变量的地址,格式为&变量名。是一个阻塞式的函数,等用户输入完毕后,则将值赋值给变量,至此函数调用完毕。敲回车键告知计算机键入完毕。

    函数原型:int scanf(const char *format,...);

    说明:scanf() 是从标准输入流stdio (标准输入设备,一般是键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。

    其调用形式为: scanf("",);变量地址要求有效,并且与格式说明的次序一致。

    使用示例:

    //使用scanf函数输入一个字符变量。

    char a;

    scanf(“%c”,&a);

    //同时输入多个值。

    scanf(“%d,%d”,&num1,num2);

    //在内部不能使用\n转义字符,否则没完没了。

    scanf(“%d\n”,&a);

    00分享举报

    展开全文
  • 按照这格式,输入数据的时候,应该加上逗号。比如说想输入22 33 就应该 22,33。2、也可以像这样scanf("%d %d",&a,&b);中间用空格隔开,那样就可以直接输入 22 33了。scanf 的功能用一句话来概括就是...

    代码和输入格式有误。

    1、scanf("%d,%d",&a,&b);按照这个格式,输入数据的时候,应该加上逗号。比如说想输入22 33 就应该 22,33。

    2、也可以像这样scanf("%d %d",&a,&b);中间用空格隔开,那样就可以直接输入 22 33了。

    scanf 的功能用一句话来概括就是“通过键盘给程序中的变量赋值”。该函数的原型为:

    # include

    int scanf(const char *format, ...);

    它有两种用法,或者说有两种格式。

    8f24ea87627e2c23c823f2f03ae08d44.png

    扩展资料

    使用scanf的注意事项:

    1、参数的个数一定要对应

    在前面介绍 printf 时说过,“输出控制符”和“输出参数”无论在“顺序上”还是在“个数上”一定要一一对应。这句话同样对 scanf 有效,即“输入控制符”和“输入参数”无论在“顺序上”还是在“个数上”一定要一一对应。

    这种错误是初学者经常犯的,由于粗心大意,少写一个参数。更严重的是,这种错误在编译的时候不会报错。printf 也是一样,即使“输出参数”少写了也不会报错,但从程序的功能上讲这么写就是错的。所以在编程的时候一定要避免这种错误的发生。

    2、输入的数据类型一定要与所需要的数据类型一致

    在 printf 中,“输出控制符”的类型可以与数据的类型不一致。在 scanf 中,对于从键盘输入的数据的类型、scanf 中“输入控制符”的类型、变量所定义的类型,这三个类型一定要一致,否则就是错的。虽然编译的时候不会报错,但从程序功能的角度讲就是错的,则无法实现需要的功能。

    参考资料来源:

    百度百科——scanf

    展开全文
  • 1. 转化说明符%a(%A)浮点数,十六进制数字和p-(P-)表示法(C99)%c字符%d有符号十进制整数%f浮点数(包括浮点数和doulbe)%e(%E)浮点指数输出[e-(E-)表示法]%g(%G)浮点数不显示无意义的零“ 0”“%i有符号...

    c060bebcdb31b957bc7bac561e95e90f.png

    1. 转化说明符

    %a(%A)浮点数,十六进制数字和p-(P-)表示法(C99)%c个字符

    %d个有符号十进制整数

    %f浮点数(包括浮点数和doulbe)%e(%E)浮点指数输出[e-(E-)表示法]%g(%G)浮点数不显示无意义的零“ 0”“

    %i有符号十进制整数(与%d相同)%u无符号十进制整数

    %o八进制整数,例如0123

    %x(%X)十六进制整数0f(0F)例如0x1234%p指针%s字符串%%“%”

    2. 徽标

    左对齐: “-”,例如“%-20s”右对齐: “ +”,例如“%+ 20s”

    空格: 如果符号为正,则将显示一个空格,如果符号为负,则将显示“-”,例如“%6.2f”. #: 对c,s,d,u类无效;对于o类,在输出时添加前缀o;对于x类,将0x添加到输出中;

    对于e,g,f类型,仅当结果为小数时才给出小数点.

    3. 格式字符串(格式)

    [标记] [最小输出宽度] [. [精度] [长度]类型“%-md”: 左对齐,如果m小于实际值,则输出为实际值.

    “%m.ns”: 输出m位,从左侧开始输入字符串n位,当n> m或m省略时,在左侧填充空格m = n

    例如“%7.2s”输入中国

    输出“ CH”“%m.nf”: 输出浮点数,m为宽度,n为小数点右边

    例如“%3.1f”输入3852.99

    输出3853.0长度: h为短整形量,l为长整形量

    printf格式控件的完整格式: %-0 m.n l或h格式字符

    以下是格式说明的每个组成部分的说明:

    b2c0fc6e679dcd7601bce6b18e28c4f9.png

    ①%: 表示格式描述的开始符号,必不可少.

    ②-: 是-表示左对齐输出,如果省略,则表示右对齐输出. ③0: 0表示指定的槽位已填充0,如果省略,则表示指定槽位未填充.

    ④m.n: m表示字段宽度,即相应的输出项在输出设备上占据的字符数. N代表准确性. 用于描述输出实数的小数位数. 指定n时,隐含的精度为n = 6位数字.

    ⑤l或h: l整数类型是long类型,实数类型是double类型. h用于将整数类型的格式字符修改为短型.

    scanf函数称为格式输入函数,即,数据以用户指定的格式从键盘输入到指定的变量中.

    scanf函数是标准库函数c语言中printf输出格式,其函数原型位于头文件“ stdio.h”中. 与printf函数一样,C语言也允许在使用scanf函数之前不包括stdio.h文件. scanf函数的一般形式为:

    scanf(“格式控制字符串”,地址表列);

    其中,格式控制字符串具有与printf函数相同的功能,但是它无法显示非格式字符串,即无法显示提示字符串. 每个变量的地址在地址表列中给出. 地址由地址运算符“&”和变量名组成.

    例如: &a,&b分别代表变量a和变量b的地址.

    此地址是编译系统分配给内存中变量a和b的地址. 在C语言中,使用了地址的概念,这与其他语言不同. 应该区分变量值和变量地址这两个不同的概念. 变量的地址由C编译器系统分配,用户无需关心特定的地址.

    格式字符串格式字符串的一般格式为:

    %[*] [输入数据宽度] [长度]类型

    带有方括号[]的项目是可选的. 每个项目的含义如下.

    1)类型

    表示输入数据的类型,其格式字符和含义如下表所示.

    设置字符含义

    d输入一个十进制整数

    o输入八进制整数

    x输入十六进制整数

    u输入无符号十进制整数

    f或e输入实数(十进制或指数形式)

    c输入一个字符

    输入字符串

    2)“ *”符号

    用于指示输入项目. 读入后,未分配相应的变量,即跳过输入值. 如:

    scanf("%d %*d %d",&a,&b);

    scanf("%d %*d %d",&a,&b);

    当输入为: 123时,将1分配给a,跳过2,将3分配给b.

    3)宽度

    使用十进制整数指定输入宽度(即字符数). 例如:

    scanf("%5d",&a);

    scanf("%5d",&a);

    输入12345678仅会将12345分配给变量a,其余部分将被截断.

    另一个例子:

    scanf("%4d%4d",&a,&b);

    scanf("%4d%4d",&a,&b);

    输入12345678会将1234分配给a,将5678分配给b.

    4)长度

    长度格式字符为l和h,l表示输入长整数数据(例如%ld)和双精度浮点数(例如%lf). h表示输入短整数数据.

    使用scanf函数时,还必须注意以下几点:

    scanf函数中没有精确控制,

    例如: scanf(“%5.2f”,&a);是非法的. 您不能使用此语句输入带两位小数的实数.

    在scanf中需要变量地址. 如果指定了变量名,则会发生错误.

    如果scanf(“%d”,a);是非法的,应将其更改为scnaf(“%d”,&a);合法.

    输入多个数值数据时,如果格式控制字符串中没有非格式字符作为输入数据之间的间隔,则可以使用空格,TAB或回车作为间隔. 当C编译器遇到空格,TAB,回车或非法数据时(例如,当为“%d”输入“ 12A”时,A是非法数据),则认为数据已结束.

    输入字符数据时,如果格式控制字符串中没有非格式字符,则所有输入的字符均视为有效字符.

    示例:

    scanf("%c%c%c",&a,&b,&c);

    scanf("%c%c%c",&a,&b,&c);

    输入d,e和f,将d分配给a,将d分配给b,将e分配给c. 仅当输入为def时,才能将“ d”分配给a,将“ e”分配给b,将“ f”分配给c.

    如果在格式控件中添加空格作为空格,例如:

    scanf("%c %c %c",&a,&b,&c);

    scanf ("%c %c %c",&a,&b,&c);

    输入时,可以在每个数据之间添加空格.

    示例;

    #include

    intmain(void){

    chara,b;

    printf("input character a,b\n");

    scanf("%c%c",&a,&b);

    printf("%c%c\n",a,b);

    return0;

    }

    #include 

    int main(void)

    {

    char a,b;

    printf("input character a,b\n");

    scanf("%c%c",&a,&b);

    printf("%c%c\n",a,b);

    return 0;

    }

    因为scanf函数“%c%c”中没有空格,所以输入MN,结果输出仅为M. 当输入更改为MN时,可以输出MN的两个字符.

    示例

    #include

    intmain(void){

    chara,b;

    printf("input character a,b\n");

    scanf("%c %c",&a,&b);

    printf("\n%c%c\n",a,b);

    return0;

    }

    #include 

    int main(void)

    {

    char a,b;

    printf("input character a,b\n");

    scanf("%c %c",&a,&b);

    printf("\n%c%c\n",a,b);

    return 0;

    }

    此示例表明,当scanf格式控制字符串“%c%c”之间存在空格时,输入数据之间可能存在空格.

    5)如果格式控制字符串中包含非格式字符,则在输入时还必须输入非格式字符.

    示例:

    scanf("%d,%d,%d",&a,&b,&c);

    scanf("%d,%d,%d",&a,&b,&c);

    非格式字符“,”用作间隔字符,因此输入应为: 5、6、7. 另一个例子:

    scanf("a=%d,b=%d,c=%d",&a,&b,&c);

    scanf("a=%d,b=%d,c=%d",&a,&b,&c);

    输入应为: a = 5,b = 6,c = 7.

    6)如果输入数据和输出类型不一致,尽管编译可以通过c语言中printf输出格式,但结果将不正确.

    示例

    #include

    intmain(void){

    inta;

    printf("input a number\n");

    scanf("%d",&a);

    printf("%ld",a);

    return0;

    }

    #include 

    int main(void)

    {

    int a;

    printf("input a number\n");

    scanf("%d",&a);

    printf("%ld",a);

    return 0;

    }

    由于输入数据类型为整数,并且输出语句的格式字符串被描述为长整数,因此输出结果与输入数据不匹配. 如果更改步骤如下

    示例

    #include

    intmain(void){

    longa;

    printf("input a long integer\n");

    scanf("%ld",&a);

    printf("%ld",a);

    return0;

    }

    #include 

    int main(void)

    {

    long a;

    printf("input a long integer\n");

    scanf("%ld",&a);

    printf("%ld",a);

    return 0;

    }

    运行结果为:

    inputalonginteger

    1234567890

    1234567890

    将输入数据更改为长整数类型时,输入和输出数据相等.

    示例

    #include

    intmain(void){

    chara,b,c;

    printf("input character a,b,c\n");

    scanf("%c %c %c",&a,&b,&c);

    printf("%d,%d,%d\n%c,%c,%c\n",a,b,c,a-32,b-32,c-32);

    return0;

    }

    #include 

    int main(void)

    {

    char a,b,c;

    printf("input character a,b,c\n");

    scanf("%c %c %c",&a,&b,&c);

    printf("%d,%d,%d\n%c,%c,%c\n",a,b,c,a-32,b-32,c-32);

    return 0;

    }

    输入三个小写字母并输出其ASCII码和相应的大写字母.

    示例

    #include

    intmain(void){

    inta;

    longb;

    floatf;

    doubled;

    charc;

    printf("\nint:%d\nlong:%d\nfloat:%d\ndouble:%d\nchar:%d\n",sizeof(a),sizeof(b),sizeof(f),sizeof(d),sizeof(c));

    return0;

    }

    #include 

    int main(void)

    {

    int a;

    long b;

    float f;

    double d;

    char c;

    printf("\nint:%d\nlong:%d\nfloat:%d\ndouble:%d\nchar:%d\n",sizeof(a),sizeof(b),sizeof(f),sizeof(d),sizeof(c));

    return 0;

    }

    输出各种数据类型的字节长度.

    本文来自“ 10910765”博客,请保留此源

    C语言scanf输入格式printf输出格式

    本文来自电脑杂谈,转载请注明本文网址:

    http://www.pc-fly.com/a/ruanjian/article-176833-1.html

    展开全文
  • 其实你可以直接修改提问的描述的,还有就是尽量避免用手机拍scanf()是一很有趣的函数,因为它叫做格式化输入函数。与格式化输出函数相对应。这里我们需要讨论一下scanf()的行为。首先,scanf()会进行一“吃空白...
  • C语言scanf连续输入字符

    千次阅读 多人点赞 2021-01-26 09:55:32
    C语言scanf函数连续输入字符出现的问题 上代码 //初始代码,输入1,2,a,b,每次输入按了一次回车 int a,b; char c,d; scanf("%d%d",&a&b); scanf("%c%c",%c&d); printf("%d\n%d\n",a,b); printf("%...
  • 但是实际操作发现我的字符串无论输入短,都是输入的什么输出的就.在C语言中,输入输出字符串有以下两种方式:1 用scanf/printf输入输出。scanf/printf是C语言的格式化输入输出函数,可以用于输入输出各种...
  • C语言输入scanf

    2021-05-16 00:40:52
    C语言输入scanf教程在scanf() 函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。scanf函数机制scanf() 以删除的方式从缓冲区...
  • C语言键盘输入采集scanf函数前面说过C语言的额printf函数,那么这一次说说scanf函数。这两函数像两兄弟,比如在C++里面经常遇到set和get,就差不到就是scanf和printf的意思,printf用来通过终端输出一些内容,...
  • 昨天用C编程,遇到一关于scanf的细节问题,假如运行如下程序:#includeint main(){char ch1,ch2;printf("Input for ch1:/n");scanf("%c",&ch1);printf("ch1=%c/n",ch1);printf("Input for ch2:/n");scanf("%c...
  • c语言scanf对数组赋值

    千次阅读 2021-05-25 02:27:48
    《手把手教你学51单片机-C语言》之六 中断与数码管动态显示,c语言结构体数组赋值,c语言scanf对数组赋值c语言 动态数组赋值,,c语言结构体数组赋值,c语言scanf对数组赋值C语言scanf的用法 名称:sscanf() -从一字符串...
  • c语言如何用scanf输入字符串

    千次阅读 2021-05-19 09:30:02
    C语言中,可以使用“scanf(“格式控制字符串”,变量内存地址)”语句输入字符串。scanf()函数的第一参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的...
  • 如何在C语言中用scanf输入数组

    千次阅读 2021-05-25 02:50:30
    #includemain()structint num;char name[20];char sex;int age;stu[5];...i++)printf("请输入信息\n");scanf("%d",&stu[i].num);scanf("%s",&stu[i].name);scanf("%c",&stu[i].sex); //...
  • #include<stdio.h> int main(){ int i=0,n=0; int a[1000];... scanf("%d",&a[i++]); n++; } while((ch=getchar())!= '\n'); for(i=0;i<n;i++){ printf("%d ",a[i]); } return 0; }
  • scanf("%d %f",&x,&xy); //用空格隔开 printf ("\nx+y=%4.2f",x+y); return 0;} #include<stdio.h> int main() {int x;float y; scanf("%d,%f",&x,&xy); //用逗号隔开 pr
  • C语言scanf()函数下支持中文输入吗?C语言scanf()函数下支持中文输入吗?如果我编写一程序,要求是先输入姓,再输入名,然后按照常姓名的方式排列出来,如果我需要输入中文该怎么办?搜索更相关的解决方案:中文输入--...
  • C语言Scanf函数

    2021-05-21 01:46:00
    C语言scanf函数一、变量的内存分析(一)字节与地址①.内存以字节为单位 每字节都有自己的内存地址,根据地址就可以找到该字节。整个内存相当于一整个酒店,而酒店以房间为单位,在这里每房间就相当于是每字节...
  • scanf 和 printf一样,非常重要,而且用得非常,所以一定要掌握。概述scanf的功能用一句话来概括就是“通过键盘给程序中的变量赋值”。该函数的原型为:# includeint scanf(const char *format, ...);它有两种用法...
  • 函数:scanf功能:执行格式化输入用法:int scanf(char *format[,argument,...]);scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当...
  • vscode如何运行c语言scanf输入

    千次阅读 2021-03-31 16:17:37
    最近,我在用 vscode 学习C语言,发现点击运行的时候他一直在 输出 面板给我运行,我想通过scanf输入 又不行,所以,产生了这篇博客 解决方法 选择左上角 文件->首选项(preferences)->设置(settings)...
  • c语言怎么用scanf输入字符串发布时间:2021-04-16 13:59:23来源:亿速云阅读:102作者:小新这篇文章主要介绍c语言怎么用scanf输入字符串,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!...
  • C语言清空输入缓冲区

    2021-05-22 07:41:27
    来源:http://blog.csdn.net/guanyasu/article/details/53153705https://zhidao.baidu.com/question/5241738.htmlC语言中如何清空输入输出缓冲区上述描述似乎能够解决问题了,但是,fflush( )并不是标准C语言库函数...
  • 有时候可能需要在每一行输入的整数不确定,回车作为结束符,整数中间用任意多个空格隔开。代码如下:#includeint main(){int num[1000];char ch;do{scanf("%d",&a[i++]);}while((ch=getchar())!= '\n');// 这里...
  • C语言scanf详解

    2021-10-30 17:38:54
    scanf 的功能用一句话来概括就是...功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的为地址的变量中。 下面给大家举例子: #include <stdio.h> int main(void) { i
  • 今天遇到一道题要求输入scanf("%c %c %c\n",&...这种情况下会要去多输入一行,才有用,但是实际读入的却还是第一次输入的那一行。看下面的例子:#includeint main(void){int n;scanf("%d\n",&n);printf(...
  • 我想限制scanf函数,所以当我输入char* array时,该字符具有30以上的字符,它将无法得到它,并且我的输出将是错误的。我得到使用[^ n]之类的提示,但我不知道该怎么做?我知道我可以使用scanf("%30s"..),但是...
  • 满意答案Sr.ALong2013.11.29采纳率:48%等级:11已帮助:...看看下面这吧,比较简单.#include "stdio.h"main(){int a,b,c,t;printf("please input a,b and c:\n");scanf("%d%d%d",&a,&b,&c);if(a>b)...
  • ?1234567891011121314151617#includevoid main(){char str[100];char* p=NULL;printf("请输入一段英文文章:\n");gets(str);// scanf("%s",str);p=str;for(;*p!='\0';p++){...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 70,623
精华内容 28,249
关键字:

c语言scanf输入多个值

c语言 订阅
友情链接: bootparam_utils.rar