C++(兼容 C 语言) 的标准输入语法,用来读取一行文本

cpp 复制代码
char arr[200] = { 0 };
fgets(arr, 200, stdin);

我给你用最简单的话拆解一下每一句的意思、作用和注意事项:

一、 核心功能总结

一句话功能 :这行代码的作用是 从键盘(或文件)读取一行文字,存到 arr 数组里 。比如输入 Hello Worldarr 里就会存下 H e l l o ...


二、 逐行代码详解

1. char arr[200] = { 0 };
  • 含义 :定义一个 字符数组 (字符串),名字叫 arr
  • char:类型是字符(存字母、数字、符号)。
  • arr[200] :表示这个数组能装 200 个字符(最多存 199 个字母 + 1 个结束符)。
  • = { 0 }初始化所有元素为 0
    • 作用:防止数组里残留垃圾数据,确保字符串末尾有正确的结束符 \0
2. fgets(arr, 200, stdin)
  • 含义:这是读取字符串的核心函数。
  • 参数解释
    1. arr:把读到的文字放在这个数组里。
    2. 200:最多读多少个字符(防止装不下溢出)。
    3. stdin :表示从 标准输入 读,也就是从 键盘 输入。
  • 特点
    • 它会一直读,直到遇到 换行符(Enter)读满 200 个字符 才停止。
    • 它会把 换行符 \n 也一起存进去(代表回车)。

三、 举个直观的例子

输入(在控制台打字按回车):

text

复制代码
I love C++

代码执行后

  • arr[0] = 'I'
  • arr[1] = ' '
  • arr[2] = 'l'
  • ...
  • arr[7] = '+'
  • arr[8] = '+'
  • arr[9] = \n (存的是换行符)
  • arr[10] = \0 (自动补的结束符)

四、 新手必看的 3 个注意事项(避坑)

  1. 不要忘记头文件 使用 fgets 必须包含标准库头文件:

    cpp

    运行

    复制代码
    #include <cstdio>  // C++版本
    // 或者 #include <stdio.h>  // C语言兼容版本
  2. 区分 getsfgets

    • 图片里是 fgets(安全,有限制长度)。
    • 以前有个 gets() 函数(没限制长度),非常危险,已经被废弃,千万别用
  3. 读取换行符的问题 fgets 会把你按的 回车 存进去。如果你不想要这个换行,可以手动替换掉:

    cpp

    运行

    复制代码
    // 把最后一个换行符删掉(如果有的话)
    arr[strcspn(arr, "\n")] = '\0';

总结

这就是标准的 "读一行文本" 操作:

  1. 准备一个盒子 arr
  2. fgets 从键盘把一行内容装进盒子里。

如果是做编程题(比如读一行含空格的句子),这就是最标准的写法!

相关推荐
山下梅子酒2255 小时前
洛谷-入门-B2046
c语言
纪念 2295 小时前
C++类和对象(二)
开发语言·c++
泡海椒5 小时前
Java 后端最优 PDF 导出方案:jquick-pdf 项目引入与快速测试
java·开发语言·pdf
钓鱼的肝5 小时前
csp-j-s总结(1)
c++·笔记·算法·青少年编程
Evand J5 小时前
【MATLAB例程】二维Astar路径规划与AOA-TDOA定位仿真。完整代码,附下载链接。包运行成功,带中文注释
开发语言·matlab·路径规划·代码·定位·融合定位
李永奉5 小时前
中科蓝讯SDK开发-耳机项目功耗问题排查教程
c语言·开发语言·嵌入式硬件·物联网·智能手机
linx2956 小时前
第七章 · 标准库容器、算法与 ranges
c语言·开发语言·数据结构·c++·算法
钓鱼的肝6 小时前
csp-j-s总结(4)
c++·经验分享·笔记·算法
峥嵘life6 小时前
2026华为AI码道 CodeArts 使用分享:Windows端 + 服务器CLI 实战总结
android·大数据·开发语言·python
Logic1016 小时前
C语言/数据结构位运算题解:异或XOR找出独特数字的索引位置——成对数字在两侧
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质