百度
360搜索
搜狗搜索

c++scanf用法,scanf在c语言中的作用详细介绍

本文目录一览: c语言中的scanf 函数的用法

1、空白符问题
#include

main()

{

int a;

printf("input the data ");

scanf("%d ",&a);//这里多了一个回车符

printf("%d",a);

return 0;

}

2、回车符也占位。

#include

main()

{

int n = 5;

char c[n];

for(int i = 0; i < n; i++)

c[i] = scanf("%c",&c[i]);

printf(c);

return 0;

}

3、scanf()函数的参数输入类型不匹配问题

#include

main()

{

int a=123;

char c='t';

printf("input ");

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

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

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

printf("%d %c ",a,c);

return 0;

}

扩展资料:

scanf函数用%s读取一个字符串时,其实它只能读取一个单词,因为遇到空格时,它会认为输入已结束。因此一般使用fgets来读取一个字符串。如果想用scanf函数读取带有空格的字符串时,需要使用参数%[ ]来完成,它的意思是读入一个字符集合。

[ ]是个集合的标志,%[ ]特指读入此集合所限定的那些字符,比如%[A-Z]是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是“^”,这说明读取不在"^"后面集合的字符,既遇到"^"后面集合的字符便停止(这就是scanf函数里的正则表达式应用)。

scanf是C语言中的一个输入函数,与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include 。(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include 。)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。

输出的值只是空格前面的字符是因为scanf函数的输入格式错误,输入参数的变量前需要加&。

scanf("%s",s);改为scanf("%s",&s);

scanf的用法是:scanf("格式控制字符串",输入参数一,输入参数二);

格式控制字符串包含:格式控制说明,普通字符。

1、格式控制字符串表示输入的格式,(int型用%d,float用%f,double型用%lf)

2、普通字符:在输出数据的时候,按照原样输出的字符,如:"fahr=%d,celsius=%d\n"中的fahr=,celsius=。

3、输入的参数是变量的地址,所以要在变量前面加&。

扩展资料

调用scanf()函数输入数据,变量名x前面要加&,%lf中的l是long的首字母,scanf函数的输入参数必须和格式控制字符串中的格式控制说明相对应,并且它们的类型,个数和位置要一一对应。

如果scanf中%d是连着写的如“%d%d%d”,在输入数据时,数据之间不可以用逗号分隔,只能用空白字符(空格或tab键或者回车键)分隔——“2 (空格)3(tab) 4” 或 “2(tab)3(回车)4”等。若是“%d,%d,%d”,则在输入数据时需要加“,”,如“2,3,4”。

参考资料来源:百度百科——scanf

输出的值只是空格前面的字符是因为scanf函数的输入格式错误,输入参数的变量前需要加&。

scanf("%s",s);改为scanf("%s",&s);

scanf的用法是:scanf("格式控制字符串",输入参数一,输入参数二);

格式控制字符串包含:格式控制说明,普通字符。

1、格式控制字符串表示输入的格式,(int型用%d,float用%f,double型用%lf)

2、普通字符:在输出数据的时候,按照原样输出的字符,如:"fahr=%d,celsius=%d\n"中的fahr=,celsius=。

3、输入的参数是变量的地址,所以要在变量前面加&。

扩展资料

“输出控制符”和“输出参数”无论在“顺序上”还是在“个数上”一定要一一对应。这句话同样对 scanf 有效,即“输入控制符”和“输入参数”无论在“顺序上”还是在“个数上”一定要一一对应。比如:

# include

int main(void)

{

char ch;

int i;

scanf("%c%d", &ch);

printf("ch = %c, i = %d\n", ch, i);

return 0;

}

参考资料:百度百科 - scanf

1、用法:int scanf(char *format[,argument,...]);

scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。

2、其调用格式为:

scanf("

",

);

scanf()函数返回成功赋值的数据项数,出错时则返回EOF。

3、scanf()函数的控制串的使用:

#include "stdio.h"

int main(void)

{

int a,b,c;

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

printf("%d,%d,%d/n",a,b,c);

return 0;

}

扩展资料:

scanf 函数使用中的注意事项:

(1)在高版本的 Visual Studio 编译器中,scanf 被认为是不安全的,被弃用,应当使用scanf_s代替 scanf。

(2) 对于字符串数组或字符串指针变量,由于数组名可以转换为数组和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上"&"操作符。

(3) 可以在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读操作中的最大位数。

(4) scanf函数中没有类似printf的精度控制。

如: scanf("%5.2f",&a); 是非法的。不能企图用此语句输入小数为2位的实数。

参考资料来源:百度百科—scanf函数

scanf 函数最主要的用法是:

scanf("输入控制符", 输入参数);

功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。

用scanf()函数以%s格式读入的数据不能含有空白符时,所有空白符都被当做数据结束的标志。所以题中函数输出的值只有空格前面的部分。

如果想要输出包括空格在内的所有数据,可以使用gets()函数读入数据。gets()函数的功能是读取字符串,并存放在指定的字符数组中,遇到换行符或文件结束标志时结束读入。换行符不作为读取串的内容,读取的换行符被转换为字符串结束标志'\0'。

扩展资料:

使用scanf()函数需要注意的问题:

1.对于字符串数组或字符串指针变量,由于数组名可以转换为数组和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上"&"操作符。

2.可以在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读操作中的最大位数。

3.scanf函数中没有类似printf的精度控制。

如:scanf("%5.2f",&a); 是非法的。不能企图用此语句输入小数为2位的实数。

4.scanf中要求给出变量地址,如给出变量名则会出错

如:scanf("%d",a);是非法的,应改为scanf("%d",&a);才是合法的。

5.在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔,则可用空格,TAB或回车作间隔。

C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。

6.在输入字符数据(%c)时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。

参考资料:

百度百科-scanf()函数

百度百科-gets()函数

C语言中的Scanf的用法

用法:int scanf(char*format,[argument,...]);
scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘)读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。
其调用格式为:scanf(“

”,

);

scanf()函数返回成功赋值的数据项数,出错时则返回EOF;

其控制串由三类字符构成:

1、格式化说明符

2、空白符

3、非空白符

格式化说明符

附加格式说明字符表:

空白字符

空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符,空白符可以是space,tab,newline等等,直到第一个非空白符出现为止。

非空白字符

一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。

扩展资料:实例详解:

#include"stdio.h"

int main(void)

{

int a,b,c;

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

printf("%d,%d,%d/n",a,b,c);

return 0;

}

运行时按如下方式输入三个值:

3□4□5↙(输入a,b,c的值)

3,4,5(printf输出的a,b,c的值)

(1)&a、&b、&c中的&是地址运算符,分别获得这三个变量的内存地址。

(2)“%d%d%d”是按十进值格式输入三个数值。输入时,在两个数据之间可以用一个或多个空格、tab键、回车键分隔。

以下是合法输入方式:

①3□□4□□□□5↙

②3↙

4□5↙

③3(tab键)4↙

5↙

例2

#include"stdio.h"

int main(void)

{

int a,b,c;

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

printf("%d,%d,%d/n",a,b,c);

return 0;

}

运行时按如下方式输入三个值:

3,4,5↙(输入a,b,c的值)

或者

3,□4,□5↙(输入a,b,c的值)

3,□□□4,□5↙(输入a,b,c的值)

……

都是合法的,但是”,”一定要跟在数字后面,如:

3□,4,□5↙就非法了,程序出错。(解决方法与原因后面讲)

再如:

1、sacnf()中的变量必须使用地址

int a,b;

scanf("%d%d",a,b);//错误

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

2、scanf()的格式控制串可以使用其它非空白字符,但在输入时必须输入这些字符。

例:

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

输入:3,4↙(逗号与”%d,%d”中的逗号对应)

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

输入:a=3,b=4↙(”a=”,”b=”,逗号与”%d,%d”中的”a=”,”b=”及逗号对应)

3、在用”%c”输入时,空格和“转义字符”均作为有效字符。

例:

scanf("%c%c%c",&c1,&c2,&c3);

输入:a□b□c↙

结果:a→c1,□→c2,b→c3(其余被丢弃)

scanf()函数接收输入数据时,遇以下情况结束一个数据的输入:(不是结束该scanf()函数,scanf()函数仅在每一个数据域均有数据,并按回车后结束)。

①遇空格、“回车”、“跳格”键。

②遇宽度结束。

③遇非法输入。

首先需要#include

int scanf( const char *format, ... );scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。

第一个参数format为一个常量字符串,这个字符串中如果包含‘%’符号则使用后续参数进行匹配如:scanf("%d%d", &a, &b);

1.转换字符(就是%后跟的部分) a 读浮点值(仅适用于 C99), A 读浮点值(仅适用于 C99), c 读单字符,d 读十进制整数, i 读十进制、八进制、十六进制整数 。

2.附加格式说明字符表修饰符说明:L/l 长度修饰符 输入"长"数据, h 长度修饰符 输入"短"数据, W 整型常数 指定输入数据所占宽度,表示本输入项在读入后不赋值给相应的变量。

这是C语言另人头疼的一个问题。

scanf 后面的参数,就是要 写变量的 地址。所以 int a,b; 就要 用 &a,&b 形式来调用 scanf.

可是,如果是字符串,char s[10]; scanf("%s",s); 参数 s 就 不要 &. 因为 s 就是 地址形式。

scanf("%d,%d", &a, &b); 还有,你这句输入时,a b 数据之间还要加逗号。例如 12,34

因为格式里有逗号。

scanf是C语言中的一个输入函数,与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include 。(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include 。)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。

首先需要#include

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

scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。

第一个参数format为一个常量字符串,这个字符串中如果包含‘%’符号则使用后续参数进行匹配

如:scanf("%d%d", &a, &b);

格式说明符

  转换字符(就是%后跟的部分)

  a 读浮点值(仅适用于 C99)

  A 读浮点值(仅适用于 C99)

  c 读单字符

  d 读十进制整数

  i 读十进制、八进制、十六进制整数

  e 读浮点数

  E 读浮点数

  f 读浮点数

  F 读浮点数(仅适用于 C99)

  g 读浮点数

  G 读浮点数

  o 读八进制数

  s 读字符串

  x 读十六进制数

  X 读十六进制数

  p 读指针值

  n 至此已读入值的等价字符数

  u 读无符号十进制整数

  [ ] 扫描字符集合

  % 读 % 符号(百分号)

  附加格式说明字符表修饰符说明

  L/l 长度修饰符 输入"长"数据

  h 长度修饰符 输入"短"数据

  W 整型常数 指定输入数据所占宽度

  * 表示本输入项在读入后不赋值给相应的变量

scanf 函数最主要的用法是:

scanf("输入控制符", 输入参数);

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

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

扩展资料:

函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。

发展:

使用scanf函数进行输入,必须指定输入的数据的类型和格式,不仅繁琐复杂,而且很容易出错。C++保留scanf只是为了和C兼容。

以便过去用C语言写的程序可以在C++的环境下运行。C++的编程人员都愿意使用cin进行输入,很少使用scanf。

但是scanf有一个明显的优点,速度比cin函数快。

参考资料:

百度百科-scanf (计算机语言函数)

阅读更多 >>>  c语言程序设计代码,C语言程序设计 编写程序计算飞机票款.输入舱位代码和购票数量,输出总票款


scanf在c语言中的作用

C语言中scanf是标准库函数,主要用来接收用户输入的数据。
scanf与printf函数一样,都被定义在头文件stdio.h里,因此在使用scanf函数时要加上#include

。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

函数格式:int scanf(char *format, args, ...);

功 能:从标准输入设备按format指定格式输入数据给args所指向的内存单元;

返 回 值 :读入并赋给args的数据个数。遇文件结束返回EOF,出错返回0。

扩展资料

基本特性

1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。

2、结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。

C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

3、代码级别的跨平台:由于标准的存在,使得几乎模式同样的C代码可以用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。

4、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持。

但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。

一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。

参考资料:百度百科-C语言

scanf是c语言中的标准库函数,主要作用是接收用户输入的数据。

scanf是C语言中的输入函数,可以从键盘获得用户输入,和printf输出功能正好相反。scanf的输入格式是多种多样的,使用时需根据情况选择,最常用的是十进制整数型输入%d。

scanf的使用和输入格式

scanf("%d", &c); //输入一个整数并赋值给c。

scanf("%d", &d); //输入一个整数并赋值给d。

scanf("%d,%d", &c, &d); //输入两个整数并分别赋值给c、d。

scanf("%d %d", &c, &d); //输入两个整数并分别赋值给c、d。

前两个scanf:输入一个整数,按下回车键,scanf会读取键盘输入,并把数据赋值给c(或d);后两个scanf:都是一样功能,输入格式不同,对于scanf(),输入数据的格式要和控制字符串的格式保持一致。比如:输入15 24回车,输入15,24回车,同样的把值分别赋给c和d。

C语言中的scanf是什么意思

scanf() 函数是 C 语言中的一个输入函数,它从标准输入设备(通常是键盘)读取数据,并将其存储到变量中。它的原型为:
int scanf(const char *format, ...);
scanf() 函数会根据 format 参数中的格式字符串,将从标准输入设备中读取的数据转换为相应的数据类型。下面是一些常用的格式控制字符串:
%d:整数(十进制)。
%f:浮点数。
%c:字符。
%s:字符串。
%p:指针。
%x:整数(十六进制)。
scanf() 函数的返回值是成功读取的参数数量。如果读取失败,返回值会是 EOF。
scanf函数的作用是按照指定的格式从标准输入流读取数据。
标准输入流就是指我们从键盘上输入的按键。
比如我们一般输入2个整数的话,那么中间会使用空格进行间隔,这个就是scanf默认定义的格式。
值得注意的是,scanf() 函数容易受到输入格式的干扰,比如输入错误的格式控制字符串或者输入的数据类型与格式控制字符串不匹配等,都会导致函数的异常行为,包括程序崩溃、死循环等问题。因此,在使用 scanf() 函数时,需要特别小心,并且在读取输入前,最好对用户输入的数据进行合法性检查。
scanf表示从键盘输入指定格式的数据。如:scanf("%d",x);指从键盘给x输入一个int型(整型)数据;scanf("%f",x);指从键盘给x输入一个float型(实型)数据;对应的输出为:printf 按照指定的格式输出数据;如printf("%d",x); 指按整型数据输出X中的值。
举例说明如下:
scanf("%d%d", &a, &b); // 接收用户从键盘输入的2个整数,分别赋值给变量a,b
C语言中scanf是标准库函数,主要用来接收用户输入的数据。
scanf与printf函数一样,都被定义在头文件stdio.h里,因此在使用scanf函数时要加上#include

。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

函数格式:int scanf(char *format, args, ...);

功 能:从标准输入设备按format指定格式输入数据给args所指向的内存单元;

返 回 值 :读入并赋给args的数据个数。遇文件结束返回EOF,出错返回0。

扩展资料

基本特性

1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。

2、结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。

C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

3、代码级别的跨平台:由于标准的存在,使得几乎模式同样的C代码可以用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。

4、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持。

但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。

一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。

参考资料:百度百科-C语言

c语言如何用scanf

scanf是C语言中的一个输入函数,与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include 。(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include 。)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。
  scanf与printf函数一样,都被定义在头文件stdio.h里,因此在使用scanf函数时要加上#include

。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

  scanf函数原型:

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

  scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。

  其调用格式为: scanf("

",

);

  函数 scanf() 是从标准输入流 stdin 中读内容的通用子程序,可以读入全部固有类型的数据并自动转换成机内形式。

  scanf的返回值:

  scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。

  如:

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

  如果a和b都被成功读入,那么scanf的返回值就是2

  如果只有a被成功读入,返回值为1

  如果a和b都未被成功读入,返回值为0

  如果遇到错误或遇到end of file,返回值为EOF。

  且返回值为int型.

  例:使用scanf函数输入数据。

  #include

  int main()

  {

  int a,b,c;

  printf("输入 a, b, c\n");

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

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

  fflush(stdin);

  return 0;

  }

  注意上面的scanf("%d,%d,%d",&a,&b,&c);中%d,%d,%d之间如果有逗号,在输入数据时也要加逗号,如果去掉逗号,输入时就不用逗号,而用空格、tab键或回车键将各个数据隔开

#include

void main()

{

int a,b,c,d;

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

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

}

自己引用库函数哦

实例1:

int a,b,c;

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

然后输入的时候:

110,111,112

实例2:

int a,b,c;

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

然后输入的时候:

110——111——112,113

--------------------------------------

应该看出规律了吧,scanf中用什么分隔开,在输入时就用什么分割开。

int a;int b; int c ;int d;

printf("输入a ,b ,c,d的值:");

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

printf("%d,%d,%d,%d",a,b,c,d);

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

2、在test.cpp文件中,输入C语言代码:

int a, b, c, d;

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

printf("%d %d %d %d", a, b, c, d);

3、编译器运行test.cpp文件,此时成功用scanf一次性的接收了a、b、c、d4个数字。


C语言中scanf函数的输入格式

因为你的scanf函数中的格式与输入的格式不对,即
scanf("%d%d%d",&x,&y,&z);这句中格式应该与后面的变量一致,三个%d之间要加逗号,改为scanf("%d,%d,%d",&x,&y,&z);改成这样结果就是对的,而是你那样的做法,相当于变量x,y,z没有初始化,所以结果是一个随机数。
按照25,13,,10
这样的输入方式,实际上只是对x进行了赋值,值为25.
而y和z会在x的地址处,分别向下偏移4个字节进行取值。
这样就会造成了你上面的结果。
你可以把x、y和z的地址打出来,试试看。
int
main(int
argc,
char*
argv[])
{
int
x,y,z;
scanf("%d%d%d",&x,&y,&z);
printf("%d\n",x+y+z);
printf("%d\n",x);
printf("%d\n",y);
printf("%d\n",z);
printf("%d\n",&x);
printf("%d\n",&y);
printf("%d\n",&z);
return
0;
}
希望可以帮到你。
这个问题实际上意义不大,%d之间无空格,输入时可以用空格键隔开或者Tab键,但是像这样scanf("%d,!%d**%d",&a, &b, &c),那你输入时,应该这样输入23,!-56**678
这样输入a,b,c的值就分别是23,-56,678。楼上那位有一点错误,scanf("%d,!%d**%d",&a, &b, &c),%d之间间隔符号没必要和&a,&b,&c一样 我这样写也是可以的,但是这是为了区分,没有谁闲着没事写成这样子。我用的是codeblocks
scanf函数是c语言中输入函数的一种,将用户从键盘输入的文本转换为对应的值存储起来,下面请看详细的教程。
1、首先在主函数中定义一个变量age,类型为int类型。
2、接着用printf函数给出相应的提示—“please enter your age”。
3、使用scanf函数,将用户输入的内容存储到age这个变量,注意在变量要加上&,如果是字符数组则不用加。
4、这时将这个变量的值打印出来,也就是用户输入的内容打印出来。
5、最后右键单击,在弹出的菜单中点击“run code”。查看运行结果,就完成了。

阅读更多 >>>  递归函数c语言return空格,关于c语言递归函数的 求大神帮助 有悬赏

C语言的scanf语句格式

scanf读取的是当前键盘缓冲区中的数据,而不是用户当前的输入的数据,
所以当键盘缓冲区清空的不及时的话,
会导致读入数据不正确。
在这个代码中就是由于编译系统本身对于键盘缓冲区清空的不及时,
导致scanf读入了上次输入数据时最后输入的回车,做为了本次用户输入,
可以人为的强制进行键盘缓冲区清空,来解决这个问题。
fflush(stdin);//强制进行键盘缓冲区清空语句
这么改:
char sex,*num,*name,*birth,*add;
int age;
printf("student num:");
fflush(stdin);
scanf("%s",num);
printf("student name:");
fflush(stdin);
scanf("%s",name);
printf("student age:");
fflush(stdin);
scanf("%d",&age);
printf("student sex:");
fflush(stdin);
scanf("%c",&sex);
printf("student brith:");
fflush(stdin);
scanf("%s",birth);
printf("student add:");
   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);  

  注意:在这里两个占位符之间是,隔开,则要求在输入时也使用逗号隔开如输入1,2。此时为num1=1,num2=2。若内部为“%d#%d”则输入1#2。若内部为“%dy%d”,则输入1y2。如果中间的字符是空格,则在输入时可以用空格隔开,也可以敲tab键或者是回车键作为分隔符隔开,后两者可以看做是由空格组成的。

  扩展:格式说明符

  转换字符(就是%后跟的部分)

  a 读浮点值(仅适用于 C++)

  A 读浮点值(仅适用于 C++)

  c 读单字符

  d 读十进制整数

  i 读十进制、八进制、十六进制整数

  e 读浮点数

  E 读浮点数

  f 读浮点数

  F 读浮点数(仅适用于 C++)

  g 读浮点数

  G 读浮点数

  o 读八进制数

  s 读字符串

  x 读十六进制数

  X 读十六进制数

  p 读指针值

  n 至此已读入值的等价字符数

  u 读无符号十进制整数

  [ ] 扫描字符集合

  % 读 % 符号(百分号)

  附加格式说明字符表修饰符说明

  L/l 长度修饰符 输入"长"数据

  h 长度修饰符 输入"短"数据

  W 整型常数 指定输入数据所占宽度

  * 表示本输入项在读入后不赋值给相应的变量

scanf语句的一般格式如下:

   scanf("格式字符串", 地址,…);

   scanf语句用"格式字符串"控制键盘读入的方式。"格式字符串"中一般只包括格式说明符,它们与printf语句中的一样,而"地址"是指变量在内存中的位置。我们看看下面的程序实例,它定义了一个int、float、char和char []变量,并使用了格式说明符:

程序2-4:

#include

#define MAX_WORD 20

void main()

{

  int x;

  float a;

  char ch, empty;

  char word[MAX_WORD];  printf("Enter an integer: ");

  scanf("%d", &x); printf("Enter a float: ");

  scanf("%f", &a); fflush(stdin); // 清空输入缓冲区

  printf("Enter a character: ");

  scanf("%c", &ch); printf("Enter a string: ");

  scanf("%s", word); printf("Your integer was: %d\n", x);

  printf("Your float was: %f\n", a);

  printf("Your character was: %c\n", ch);

  printf("Your word was: %s\n", word);

}

【酷_酷_币】为您服务...

void main()   {   int a,b,c;   printf("输入 a,b,c\n");   scanf("%d,%d,%d",&a,&b,&c);   printf("a=%d b=%d c=%d\n",a,b,c);   fflush(stdin);   } scanf函数,与printf函数一样,都被定义在stdio.h里,因此在使用scanf函数时要加上#include

。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中,其关键字最末一个字母f即为“格式”(format)之意。

char sex,*num,*name,*birth,*add; (这句,你的sex后的逗号不对,按我这个)

int age;

printf("student num:");

scanf("%s",num);

printf("student name:");

scanf("%s",name);

printf("student age:");

scanf("%d",&age);

printf("student sex:");

scanf(" %c",&sex); (%c前面加一个空格)

printf("student brith:");

scanf("%s",birth);

printf("student add:");

例:使用scanf函数输入数据。

#include

int main(void)

{

int a,b,c;

printf("Give me the value of a,b,c seperated with whitespaces:\n");

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

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

return 0;

}

&a,&b,&c中的&是寻址操作符,&a表示对象a在内存中的地址 [3] ,是一个右值。变量a,b,c的地址是在编译阶段分配的(存储顺序由编译器决定)。

这里注意:如果scanf中%d是连着写的如“%d%d%d”,在输入数据时,数据之间不可以用逗号分隔。

只能用空白字符(空格或tab键或者回车键)分隔——“2 (空格)3(tab) 4” 或 “2(tab)3(回车)4”等。若是“%d,%d,%d”,则在输入数据时需要加“,”,如“2,3,4”。

(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include

阅读更多 >>>  计算机c语言题库,求c语言试题及答案!急啊!

。)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

scanf 是 scan format 的缩写,意思是格式化扫描,也就是从键盘获得用户输入,和 printf 的功能正好相反。

扩展资料:

scanf函数使用注意问题:

(1)在高版本的 Visual Studio 编译器中,scanf 被认为是不安全的,被弃用,应当使用scanf_s代替 scanf。

(2) 对于字符串数组或字符串指针变量,由于数组名可以转换为数组和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上"&"操作符。

(3) 可以在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读操作中的最大位数。

(4) scanf函数中没有类似printf的精度控制。

如: scanf("%5.2f",&a); 是非法的。不能企图用此语句输入小数为2位的实数。

(5) scanf中要求给出变量地址,如给出变量名则会出错

如 scanf("%d",a);是非法的,应改为scanf("%d",&a);才是合法的。

(6) 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔,则可用空格,TAB或回车作间隔。

C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。

(7) 在输入字符数据(%c)时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。

参考资料来源:百度百科-scanf


c语言如何用scanf

需要准备的材料分别有:电脑、C语言编译器。
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。
2、在test.cpp文件中,输入C语言代码:
int
a,
b,
c,
d;
scanf("%d%d%d%d",
&a,
&b,
&c,
&d);
printf("%d
%d
%d
%d",
a,
b,
c,
d);
3、编译器运行test.cpp文件,此时成功用scanf一次性的接收了a、b、c、d4个数字。
应该是遇到非法数据的时候,scanf自动结束。
输入4个数时,前3个数正常获取并存储到变量中,其余数据暂存在缓存区中备用。第二次执行scanf函数的时候,从缓存区继续读取上次输入的数据。
如:输入1,2,3,4
这时第二次scanf执行时,缓冲区数据为,4
这时非法数值数据,scanf结束,然后执行printf语句,输出原来的a、b、c的值,以后每次循环时scanf都自动结束,所以会连续9次输出。
你可以试着输入1,2,3
4
看一下运行结果,就明白了(这一次运行正常)。
自己引用库函数哦
实例1:
int
a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
然后输入的时候:
110,111,112
实例2:
int
a,b,c;
scanf("%d——%d——%d,%d",&a,&b,&c,&d);
然后输入的时候:
110——111——112,113
--------------------------------------
应该看出规律了吧,scanf中用什么分隔开,在输入时就用什么分割开。
scanf与printf函数一样,都被定义在头文件stdio.h里,因此在使用scanf函数时要加上#include

。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

  scanf函数原型:

  int

scanf(

const

char

*format,

...

);

  scanf()函数是格式化输入函数,它从标准输入设备(键盘)

读取输入的信息。

  其调用格式为:

scanf("

",

);

  函数

scanf()

是从标准输入流

stdin

中读内容的通用子程序,可以读入全部固有类型的数据并自动转换成机内形式。

  scanf的返回值:

  scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。

  如:

  scanf("%d,%d",

&a,

&b);

  如果a和b都被成功读入,那么scanf的返回值就是2

  如果只有a被成功读入,返回值为1

  如果a和b都未被成功读入,返回值为0

  如果遇到错误或遇到end

of

file,返回值为EOF。

  且返回值为int型.

  例:使用scanf函数输入数据。

  #include

  int

main()

  {

  int

a,b,c;

  printf("输入

a,

b,

c\n");

  scanf("%d,%d,%d",

&a,

&b,

&c);

  printf("a

=

%d

b

=

%d

c

=

%d\n",

a,

b,

c);

  fflush(stdin);

  return

0;

  }

  注意上面的scanf("%d,%d,%d",&a,&b,&c);中%d,%d,%d之间如果有逗号,在输入数据时也要加逗号,如果去掉逗号,输入时就不用逗号,而用空格、tab键或回车键将各个数据隔开


c语言中scanf的用法

scanf是C语言中的一个输入函数,与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include 。(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include 。)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。
#include
"stdio.h"main(){
int
a;
scanf("%d",&a);
printf("%d",a);}这里是把从键盘输入的数字赋给a,其中&a代表变量a在内存中的地址...整型数据类型即是无小数点的数字,比如1,2,4,-1一般定义为int而实型常量也叫浮点数简单来说就是有小数的数字,比如:3.1415926,5.141415223等,一般有2种精度的,分别定义为float,double...
C语言中scanf是标准库函数,主要用来接收用户输入的数据。
C标准函数库是所有符合标准的头文件的集合,以及常用的函数库实现程序,例如I/O输入输出和字符串控制。不像这三种COBOL、Fortran和PL/I等编程语言,在C语言的工作任务里不会包含嵌入的关键字,所以几乎所有的C语言程序都是由标准函数库的函数来创建的。
C语言简介
C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%-20%。因此,C语言可以编写系统软件。

网站数据信息

"c++scanf用法,scanf在c语言中的作用"浏览人数已经达到19次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:c++scanf用法,scanf在c语言中的作用的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!