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

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

相关推荐
桦027 分钟前
【C++复习】:继承
开发语言·c++
何仙鸟1 小时前
GarmageSet下载和处理
java·开发语言
鱼难终1 小时前
类和对象(下)
c++
wefly20171 小时前
免安装!m3u8live.cn在线 M3U8 播放器,小白也能快速上手
java·开发语言·python·json·php·m3u8·m3u8在线转换
云泽8081 小时前
深入 AVL 树:原理剖析、旋转算法与性能评估
数据结构·c++·算法
薛先生_0991 小时前
js学习语法第一天
开发语言·javascript·学习
报错小能手2 小时前
深入理解 Linux 虚拟内存管理
开发语言·操作系统
邪神与厨二病2 小时前
Problem L. ZZUPC
c++·数学·算法·前缀和
和沐阳学逆向2 小时前
我现在怎么用 CC Switch 管中转站,顺手拿 Codex 举个例子
开发语言·javascript·ecmascript
小仙女的小稀罕2 小时前
听不清重要会议录音急疯?这款常见AI工具听脑AI精准转译
开发语言·人工智能·python