文章目录

#include <stdio.h>
int main() {char i[5];char b[100];int result;//函数返回值scanf_s("%s", &i);printf("普通拳!\n");scanf_s("%s %s", &i, &b);result = scanf_s("%s %s", &i, &b);//运行结果为2,因为输入了两个数,一个a,一个breturn 0;
}

如上代码,调试时报错:

解决办法:
scanf_s要加第三个参数,指定能够读取的输入字符串长度,如果输入的字符串(包含‘\0’)大于这个长度,第一个字符就会变成‘\0’

若输入小于或等于指定长度,结果就正常


一般第三个参数用sizeof(i)就好了

参考文章:使用scanf_s发生写入错误的解决途径

代码示例:

scanf_s("%s %s %s %d", &stuNo, sizeof(stuNo), &stuName, sizeof(stuName), &classNo, sizeof(classNo),&totalScore);
#include <stdio.h>
#include <String.h>struct student {//定义学生结构体,分别包含成员学号、姓名、班别、总评成绩char stuNo[12];char stuName[20];char classNo[15];int totalScore;
};int main()
{struct student student1; //定义学生结构体类型变量printf("请输入学号,姓名,班别,总评成绩,以空格隔开:\n");void logInfo(struct student* ptr);//因为函数写在main函数后面,所以要声明logInfo(&student1);//调用函数,以学生结构体类型变量地址作为实参printf("\n学号:%s\n姓名:%s\n班别:%s\n总评成绩:%d\n", student1.stuNo, student1.stuName, student1.classNo, student1.totalScore);return 0;
}void logInfo(struct student* ptr)//该函数实现对结构体成员数据的录入操作
{char stuNo[12] = { 0 }, stuName[20] = { 0 }, classNo[15] = {0};//如果不全初始化为零,strcpy_s函数会提示可能没有为字符串添加字符串零终止符int totalScore;scanf_s("%s %s %s %d", &stuNo, sizeof(stuNo), &stuName, sizeof(stuName), &classNo, sizeof(classNo),&totalScore);strcpy_s(ptr->stuNo, stuNo);strcpy_s(ptr->stuName, stuName);strcpy_s(ptr->classNo, classNo);ptr->totalScore = totalScore;
}

运行结果:

请输入学号,姓名,班别,总评成绩,以空格隔开:
13331333 nana 4 585学号:13331333
姓名:nana
班别:4
总评成绩:585D:\Dontla_small_project\20210525_address_list\vs_test\vs_test\Debug\vs_test.exe (进程 34128)已退出,代码为 0。
按任意键关闭此窗口. . .

scanf_s写入错误怎么办?(字符串需要sizeof()参数指定接收长度)附示例相关推荐

  1. ZeroMQ接口函数之 :zmq_strerror - 获取ZMQ错误描述字符串

    Name zmq_strerror - 获取ZMQ错误描述字符串 Synopsis const char *zmq_strerror (int errnum); Description zmq_str ...

  2. C语言字符串做函数参数

    C语言字符串做函数参数 深入理解指针 一维字符串内存模型:两种 典型错误知多少 深入理解指针 注意 指针和数组的巨大区别 char *p = "abcdefg"; Char *bu ...

  3. spi flash偶尔出现写入错误的情况

    spi flash W25Q128会偶尔出现写入错误的情况,会发现读出的值和写入的值不一致,需加入2次读出比较判断. W25QXX_Read(&temp_date_count,0x000000 ...

  4. php fpm 不写errorlog,PHP-FPM不写入错误日志

    PHP-FPM不写入错误日志 我刚刚安装了一个nginx + php-fpm服务器. 一切似乎很好,除了PHP-FPM从不将错误写入其日志. fpm.conf [default] listen = / ...

  5. 字符串url获取参数_如何从URL查询字符串获取示例参数或将其附加到URL查询字符串(示例)?...

    字符串url获取参数 让我们剖析几个简单的用例,并查看视图参数的工作原理(视图参数名称不是强制性的,以匹配通过URL查询字符串传递的请求参数,但在本文中,我们将重点讨论这种情况): 情况1 在inde ...

  6. Laravel同时接收路由参数和查询字符串中的参数

    Laravel捕捉路由参数 Laravel允许在controller方法中捕捉路由里定义的参数,如下所示: 路由中定义参数: Route::get('post/{id}', 'PostControll ...

  7. 计算机硬盘写入错误怎么办,永劫无间磁盘写入错误怎么办 磁盘写入错误解决办法...

    永劫无间磁盘写入错误怎么办 磁盘写入错误解决办法 2021-06-17 16:45:00来源:永劫无间吧编辑:双习评论(0) 不少玩家在下载永劫无间后遇到了磁盘写入错误的问题,那么该怎么解决这个问题? ...

  8. win10安装steam有损计算机,win10系统steam磁盘写入错误怎么办 steam磁盘写入错误的解决教程...

    如何修复Win10系统Steam磁盘写入错误呢?Steam是一个非常知名的游戏平台,用户可以在平台上购买.下载.安装游戏,大大方便了众多游戏玩家.最近有Win10系统小伙伴使用Steam时遇到了Ste ...

  9. python字符串format方法参数解释,一文秒懂!Python字符串格式化之format方法详解

    一文秒懂!Python字符串格式化之format方法详解 一文秒懂!Python字符串格式化之format方法详解 format是字符串内嵌的一个方法,用于格式化字符串.以大括号{}来标明被替换的字符 ...

最新文章

  1. php解决高并发问题
  2. 了解一下MongoDB中的写关注(write concern)
  3. mysql 行自动增量为23,Mysql Innodb:自动增量非主键
  4. 现在的计算机专业(比如机器学习)已经沦为调包专业了吗?
  5. filestream 生成xml 文件时被如何让禁止转义_从Edgecam到PCDMIS,如何将工艺工程师的思想加入质量检测?...
  6. http --- 路由器缓存与常见的状态码
  7. 和吴昊一起玩推理 Round 2 —— 蚂蚁爬杆问题
  8. nginx动静分离配置_Nginx动静分离
  9. java 程序命令_命令行运行JAVA程序
  10. Java 基础 引用数据类型 和 流程控制
  11. DisC-Decompiler for TurboC
  12. java 邮件内嵌图片_(二)JavaMail创建包含内嵌图片的邮件
  13. COMSOL—— LiveLink for MATLAB学习1
  14. 几种主流数据库类型简介
  15. Java运行环境下载
  16. 郝斌老师c语言笔记 TXT,郝斌老师c语言笔记
  17. matlab线性规划系列之基础解题-2
  18. 生产排程系统_高级计划与排程的基本概念
  19. 一份大厂出来的创业公司cto的创业心得
  20. 数据分析的统计基础(上)

热门文章

  1. .NET疯狂架构经验分享系列之(七)WCF支持(转)
  2. 选购个人计算机小结,计算机实训小结精选 .doc
  3. 【转载】SAP Oracle ERP产品的比较
  4. 如何取得用户参数文件中的parameters
  5. SAP FBCJ现金日记帐增强操作手册
  6. bhjqahjshjhjgqwsoixcyuwyub
  7. SAP系统中发送消息的几种办法
  8. scrapy mysql 报错_scrapy爬数据存mysql报错
  9. pandas读取html并排序,使用pandas怎么实现按照列的值进行排序
  10. pythonsuper_python中的super()是什么意思呢