当前位置: 首页 > news >正文

c语言复习

scanf

零,scanf是以行输入的

输入是以行进行的,也就是每有一个scanf行输入一个回车

scanf输入时需要注意的点

如果一次输入如多个数据,则需要按照分割参数的方法分割开输入的数据

使用scanf_s读取三个整数,输入时需要严格匹配格式字符串中的分隔符

一、字符输入的 “空白符残留” 问题

使用%c读取字符时,前序输入的回车 / 空格会被当作字符读取

// 示例:先输入整数,再输入字符 int a; char ch; scanf("%d", &a); // 输入10后按回车 scanf("%c", &ch); // 此时ch会读取到“回车符(\n)”,而非预期的字符

解决:在%c前加空格,跳过空白符:

scanf(" %c", &ch); // 空格会匹配任意空白符(回车/空格/制表符)

二、字符串输入的 “截断” 与 “缓冲区溢出”

  • %s的截断问题%s会读取到 “空白符(空格 / 回车)” 为止,无法读取带空格的字符串(如输入hello world,只会读取hello);
  • scanf_s的长度参数错误:若传入的长度参数大于缓冲区实际长度,仍会导致溢出(需严格传数组长度-1,预留\0位置):
    char str[5]; scanf_s("%s", str, 10); // 错误:长度10超过数组长度5

三、输入类型不匹配导致的 “死循环”

若输入的内容与格式符类型不匹配(如用%d读取字母),输入流会残留错误数据,导致后续输入全部失败

int a; while (1) { printf("输入整数:"); scanf("%d", &a); // 若输入字母,scanf返回0(匹配失败),错误数据留在输入流 }

解决:匹配失败时清空输入流:

if (scanf("%d", &a) != 1) { while (getchar() != '\n'); // 清空当前行的错误输入 printf("输入错误,请重新输入!\n"); }

四、多组输入的 “循环终止条件” 错误

处理多组输入时,错误使用while(scanf(...))的终止逻辑:

// 错误:输入EOF(Ctrl+Z/Ctrl+D)时才终止,但实际场景中易遗漏终止条件 int a; while (scanf("%d", &a) == 1) { printf("%d\n", a); }

解决:明确业务终止条件(如输入 0 终止):

int a; while (1) { scanf("%d", &a); if (a == 0) break; // 输入0时终止 printf("%d\n", a); }

变量

标识符只能由字母,数字和下划线组成,数字不可以出现在第一个位置上

赋值

初始化

—所有的变量在第一次被使用(出现在赋值运算符右边)之前应该被初始化一次

所有的变量在第一次被使用(出现在赋值运算符右边)之前应该被初始化一次

初始化时,必须一个数据对应一个变量,不可以一把一个值赋值给多个变量,必须一个一个赋值

如果强行赋值会报错

必须一个一个赋值,不能统一赋值(除了数组)

常量vs变量:不变的量是常量

用名字表示一个数字的含义,

放在int main()函数里面开头位置可以很快地找到

运算符

a*-b是先算-b再算a*(-b)

复合赋值

前缀和后缀

a++和++a的运算结果是有区别的,虽然都对a进行了+1

但是a++是取得了a+1之前的结果(a确实也放在前面),a++表达式的值是a的原来的值

关系运算符

http://www.jsqmd.com/news/205208/

相关文章:

  • 结构化推理场景首选:VibeThinker-1.5B应用案例解析
  • 如何将照片合集制成二维码?图片生成二维码指南
  • 2026年深圳宝安区及大湾区跨境电商园区终极推荐指南:3大产业园深度解析与选择策略 - 品牌2026
  • 揭秘Docker容器网络日志难题:Cilium如何实现精准日志输出
  • vue大文件上传的示例代码与源码解析分享
  • 新手如何快速制作GIF?GIF制作指南
  • 一站式指南:盐雾腐蚀试验箱选购、品牌对比与厂家推荐 - 品牌推荐大师
  • 基于多技术栈融合的婚恋交友系统设计与实现——以LINK婚恋系统为例
  • Cilium监控日志无从下手?10个关键配置让你秒变专家
  • 大学生自学算法的好帮手:VibeThinker辅助理解DP与贪心
  • 如何借助在线制作gif动图?GIF在线制作攻略
  • 发票查验接口详细接收参数说明-C#语言集成完整示例-API高效财税管理方案
  • Top-k采样设置建议:保持确定性同时避免死循环
  • 2025年主流数据库PostgreSQL、MySQL、Oracle、MongoDB全景解析:技术选型与替代方案深度研究
  • 自动化测试脚本生成:基于自然语言描述转换为可执行代码
  • FastStone Capture注册码免费替代:用VibeThinker自动生成技术文档截图说明
  • Docker Compose网络配置十大最佳实践,第7条至关重要
  • 2026年,面向hr总监的hr saas前10品牌榜整理分享!
  • 智能家居中枢升级:从响应命令到主动推理用户意图
  • (Docker健康检查避坑手册)运维老炮儿绝不外传的6条军规
  • 知乎专栏深度解读:拆解VibeThinker的技术创新点
  • 模型即服务(MaaS)落地场景:VibeThinker作为核心组件
  • 面向未来的轻量化趋势:小模型将成为边缘计算主力
  • 2026年红色主题展厅设计公司排名:盛世笔特集团市场口碑如何? - mypinpai
  • AI 原生应用开源开发者沙龙广州站精彩回顾 PPT 下载
  • API文档智能解析:VibeThinker提取关键参数与调用规则
  • 性能测试有哪些主要方法
  • 吱吱即时通讯软件:安全的通讯办公一体化平台
  • 凤凰科技观察:从追赶者到引领者,国产AI的新篇章
  • 美团Java后端实习二面深度复盘:从项目设计到压测验证,面试官连环追问“你真的优化了吗?”