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

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

相关推荐
喵星人工作室8 小时前
C++火影忍者1.1.2
开发语言·c++
basketball6168 小时前
C++ 中的 ptrdiff_t 详解
开发语言·c++
星恒随风8 小时前
C语言数据结构排序算法详解(下):冒泡排序、快速排序、归并排序和计数排序
c语言·数据结构·笔记·学习·排序算法
wunaiqiezixin8 小时前
互斥锁与自旋锁的区别
c++
月亮邮递员6168 小时前
Markdown语法总结
开发语言·前端·javascript
printfLILEI8 小时前
php中的类与对象以及反序列化
linux·开发语言·php
曹牧8 小时前
C#:主线程能够捕获到子线程中的异常
开发语言·数据库·c#
代码中介商8 小时前
深入解析STL中的stack、queue与priority_queue
开发语言·c++
彦为君8 小时前
JavaSE-07-异常机制
java·开发语言·后端·python·spring
OxyTheCrack9 小时前
【Golang】简述make与new内置函数以及两者的区别
开发语言·golang