c scanf.获取用户输入与诸如游戏,实时系统和其他事件驱动的应用程序之类的交互式应用程序是一体的。此输入决定执行系统的特定功能。在C语言中,具有命令行界面的任何程序或应用程序都使用“SCANF”方法为此目的。

什么是c scanf功能?

C'SCANF'方法是位于“Stdio”库中的函数。它用于读取包括来自标准输入(STDIN)的字符,字符串和数字数据的格式输入,这通常是键盘。虽然Scanf在更简单的程序中是一个非常有用的功能,但它没有有效处理人类的输入错误。这使得C'SCANF'功能几乎不可靠,因此应该仅用于实现可靠性不是优先级的简单程序。

想了解更多关于C的信息吗?在Udemy.com查看本课程

C Scanf功能语法

#include  int scanf(const char *格式,变量,......);

为了使用C Scanf,源代码文件中需要库'stdio'。您可以从C'Scanf'函数的语法中看到用户的输入格式化了“格式”参数。有效格式被分配给参数'变量'。

C'SCANF'函数的“格式”参数是C字符串,包括以下一个或多个组件:

在成功执行C'SCANF'函数时,返回从输入读取的字符总数。如果失败,则函数返回负值或“eof”。

C Scanf功能格式指定符

%[*] [宽度] [lengital_modifiers] type_specifier

C'SCANF'功能格式是上述参数的组合。每个说明符在百分比(%)符号之前。上述格式说明符的简要说明如下:

C语言的新手?udemy.com的这门课程可能会有所帮助

C Scanf功能类型说明符

C'SCANF'功能类型说明符识别输入的类型。以下是最重要且常用的类型说明符。

代码片段:

Char C;SCANF(“%C”,&C);//测试printf(“第一个字符为%c \ n”,c);//第一个字符是t

代码片段:

Char FirstName [50];scanf(“%s”,firstName);// John Doe Printf(“提供的名称为%s \ n”,firstname);//约翰//字母'd'和'i'表示十进制整数。INT I = 0;Scanf(“%d”,&i);//  -  21 printf(“输入的数字为%d \ n”,i);//  -  21 //字母'a','e','f'和'g'是float和double的输入转换字母。float x;scanf(“%f”,&x); //21.12 printf ( "You are %f years old.\n", x ); //21.120000 // Letter ‘x’ takes a user input in the form of hexadecimal integer. unsigned int i = 0; scanf ( "%x", &i); //A printf ( "Decimal value is %i \n", i ); //10

c scanf函数额外的参数

C'SCANF'函数中的其他参数取决于“格式”字符串中的格式说明符的数量,因为每个字符串都保存了一部分输入。建议使用相同数量的格式说明符和函数中的变量,否则该功能可能会返回模糊结果。以下代码段说明了多种格式指定符的使用:

代码片段:

unsigned int trace = 0;INT ID;CHAR名称[50];printf(“输入名称,年龄,ID和安全码\ n”);scanf(“%[^ \ n]%2d%i%* d”,名称和年龄,&ID);printf(“用户名是%s \ n”,name);Printf(“%i。\ n”,年龄);printf(“带有id =%i。\ n”,ID);
输入 输出
John Doe2277999. 用户名是John Doeage为22. id = 77。

C Scanf功能变体'SSCANF'

int scanf(const char * inputstr,const char *格式,变量,......);

C'CANF'和'SSCANF'功能在功能中类似。两者之间的唯一区别是“Scanf”读取从标准输入的输入。相反,'scanf'读取从字符串的输入,该字符串将作为函数的第一个参数传递。

C SCANF功能替代

C'SCANF'功能无法检测缓冲区溢出。因此,当提供的缓冲区达到其限制时,额外的输入字符会覆盖可能已经占用的内存。以下示例演示了这一概念:

char nameSpace [5];scanf(“%[^ \ n]”,namewithspace);// John Doe Printf(“全名是%s \ n”,namewithspace);// John Doe.

在上面的代码片段中,缓冲区大小为“5”,但用户输入的长度超过'5'溢出该缓冲区。“FGETS”函数的形式存在更好的替代方案,其从包括标准输入的指定流读取一行。

结论

ScanF是C语言最基本的功能之一,用于执行基本输入操作,例如从命令行应用程序中获取字符串输入。为了进一步研究C语言及其核心功能,您可以在Udemy.com上以极其合理的价格占据一些基本C语言课程。一个这样的课程可以在Udemy.com找到。

C#中的顶级课程

C#接受答案的问题
Shivprasad Koirala.
4.9 (15)
新的
RPG库存系统:中级C#游戏编码课程
Sam Pattuzzi,Gamev.TV团队,Rick Davidson
4.4 (429)
完成C#Unity Game Developer 3D
Ben Tristem,Rick Davidson,Gamev.TV团队
4.7 (27,672)
畅销书
使用C#和.NET学习并行编程
Dmitri nesteruk.
4.7 (2,122)
畅销书
软件架构:C#中的META和SOLID原理
工程师斯潘克斯
4.4 (802)
C#和Windows为初学者练习(一步一步)
帕尔瓦尔萨米
4.6 (298)
C#7,C#8和C#9中的新功能
Dmitri nesteruk.
4.5 (597)
C#中间:类,接口和OOP
Mosh Hamedani.
4.6 (23,805)
畅销书
RPG核心作战创造者:学习中级Unity C#编码
Ben Tristem,Rick Davidson,Sam Pattuzzi,Gamev.TV团队
4.8 (8,679)
收视率最高
C#高级主题:准备技术访谈
Mosh Hamedani.
4.5 (15,532)
完成C#MasterClass
Denis Panjuta,Tutorials.eu by Denis Panjuta
4.5 (13,020)

更多C#课程

C#学生也会学习

赋予你的团队。引领行业。

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求演示