C++基础学习二

本文是作者的C++学习笔记,重点介绍了scanf()函数的使用,包括基本用法和与printf()的区别。同时提到了scanf()的兄弟函数如scanf_s()和sscanf(),并简单讨论了它们的安全性和功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

scanf()相关函数的学习

scanf()函数与printf()函数相互对应,scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

scanf(
    _In_z_ _Scanf_format_string_ char const* const _Format,
    ...)

scanf(“格式控制字符串”, 地址表列);
其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量的地址。地址是由地址运算符“&”后跟变量名组成的。

走进scanf()函数

hello word! 经典语句带我飞吧!!!

#include<iostream>
using namespace std;
#define NUM 256
int main()
{
	char t1[NUM];
	char* t2;
	scanf("%s", &t1);
	cout << t1 << endl;
	return 0;
}

在这里插入图片描述
呀!!!
怎么了呢???不急,老司机稳如老狗!!!毕竟这是个人学习笔记,准确说是复习!所以将在接下来的学习记录中讲到!
看来hello word! 起飞不了了!!!
稍等别急啊!!!
我这样呢:

在这里插入图片描述
这就很丑对吧!!!具体原因就是因为hello word!中间的空格键被控制台认为你输入结束后面的无效!!!这就是C语言的标准输入!
其次我们想输入一个数据习惯性直接scanf()这样写:

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

这样写就在后面输入数据时带来这种效果,输入数据中间给一个键:空格,回车…
但是如果你是这样写:

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

这样写就需要在输入数据时跟同语句内容一样,给相同的符号:“,”“ ”…

以上为scanf()函数的基本用法

scanf()函数的兄弟函数

  1. scanf()
scanf(
    _In_z_ _Scanf_format_string_ char const* const _Format,
    ...)
  1. scanf_s()
scanf_s(
        _In_z_ _Scanf_s_format_string_ char const* const _Format,
        ...)
  1. sscanf()
sscanf(
    _In_z_                       char const* const _Buffer,
    _In_z_ _Scanf_format_string_ char const* const _Format,
    ...)
  1. sscanf_s()
sscanf_s(
        _In_z_                         char const* const _Buffer,
        _In_z_ _Scanf_s_format_string_ char const* const _Format,
        ...)

scanf()与scanf_s()区别举例代码:

#include<iostream>
using namespace std;
#define NUM 5
int main()
{
	char a[NUM];
	char b[NUM];
	scanf("%s", &a);
	printf_s("a=%s\n", a);
	//scanf_s("%s", &b);//会报错
	scanf_s("%s", &b,NUM);
	printf_s("b=%s\n", b);
	return 0;
}

_s的增加可以给函数增加安全性,使得输入在安全的情况下进行
sscanf()与sscanf_s()区别举例代码:

#include<iostream>
using namespace std;
#define NUM 32
int main()
{
	char a[NUM];
	char b[NUM];
	char input[NUM] = "12345adcdefg";
	sscanf(input, "%s", &a);
	printf_s("a=%s\n", a);
	sscanf_s(input,"%s", &b,NUM);
	printf_s("b=%s\n", b);
	return 0;
}

s…他将存在input里面的数据给到后面变量里面!!!同样可以用这个函数将输入数据做分离,在此不做具体的讲解!!!
以上纯属个人总结学习!!
未完待续…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值