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 从键盘把一行内容装进盒子里。

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

相关推荐
博客180017 小时前
酷宝的使用方法,超好用的免费界面库,C++、MFC可用
c++·mfc·界面库·库来帮·酷宝
郝学胜_神的一滴19 小时前
CMake 026:属性体系精讲、四大作用域全解 & 实战代码落地
c++·cmake
众少成多积小致巨1 天前
JNI (Java Native Interface) 技术手册中文参考指南
android·java·c++
clint4566 天前
C++进阶(1)——前景提要
c++
夜悊6 天前
C++代码示例:进制数简单生成工具
c++
郝学胜_神的一滴6 天前
CMake 021: IF 条件判据详诠
c++·cmake
_wyt0016 天前
洛谷 B3930 [GESP202312 五级] 烹饪问题 题解
c++·gesp
LDR0066 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术6 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园6 天前
C++20 Modules 模块详解
java·开发语言·spring