news 2026/4/16 2:04:55

c/c++ 常见输入输出函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
c/c++ 常见输入输出函数

参考文章:
C++标准输入cin详解-CSDN博客
https://blog.csdn.net/bravedence/article/details/77282039
c++里面的函数
区分cin,cin.get,cin.getline,getline()

cin:从标准输入中读取数据
cin会跳过空白字符,以空格,换行符,tab键作为分割符。

会将分割符保留在缓冲区中。若缓冲区的第一个字符是空白字符则会跳过并清除,

cin.get
int cin.get(); //返回读入字符的ascii

istream& cin.get(char& var); //注意返回值是istream,可以链式读取

istream& get ( char* s, streamsize n ); //遇到换行符时结束读取,不对换行符进行处理,换行符仍然残留在输入缓冲区

istream& get ( char* s, streamsize n, char delim )。 //允许自定义终止符,遇到终止符停止读取,终止符保留在缓冲区中

读取的字符数最多为n-1,假设读取len个字符,会在len+1位置赋值为'0'

注意:这里的二个参数 需要传递数组的长度

如果不太理解可以看这个代码 实际上只会读取一个字符,下标为1的位置自动设置为‘0’

#include<iostream>
using namespace std;
int main(){
char id[14];
cin.getline(id, 2);
return 0;
}
一键获取完整项目代码
cpp
cin.getline
和cin.get类似 区别是将终止符自动清理,不会将终止符留在缓冲区中

------------
前面的都是c风格的读取,getline是c++风格的字符串读取

getline
需要包含string头文件

遇到终止符停止读取,会将终止符清理掉

istream& getline ( istream& is, string& str);//默认以换行符结束

istream& getline ( istream& is, string& str, char delim);

需要指定输入流(可以是文件流),输出流

这里提一下:cout直接打印数组名,会输出首地址。而直接打印字符数组名,会输出整个字符。(前提是必须要字符0结束标志)

原因:

数组名在大多数表达式中会自动退化为指针。cout 会把它当作「地址指针」打印出来

但对于字符指针:

C++ 的 operator<< 对 cout 有重载机制:

对 char* 类型,cout 调用的重载函数是:

ostream& operator<<(ostream& os, const char* s);

它会把指针当作一个 C 字符串,从该地址开始打印,直到遇到 '\0'。

C语言中的函数
C语言不可以直接指定分割符

getchar
int getchar(void) //读取单个字符,能够读取任意字符

没有参数,返回值是ascii码

fgetc/fputc
int fgetc(FILE *stream);

功能:从指定文件中读取一个字符数据,并以无符号整数的形式返回

参数1:文件指针

返回值:成功返回读取的字符对应的无符号整数,失败返回EOF并置位错误码

int fputc(int c, FILE *stream);
功能:将指定的字符c写入到stream指向的文件中

参数1:要写入的字符对应的无符号整数 参数2:文件指针

返回值:成功返回写入字符的无符号整数,失败返回EOF并置位错误码

fgets/fputs
int fputs(const char *s, FILE *stream);
功能:将指定的字符串,写入到指定的文件中
参数1:要被写入的字符串

参数2:文件指针

返回值:成功返回本次写入字符的个数,失败返回EOF

char *fgets(char *s, int size, FILE *stream);
功能:从stream指向的文件中最多读取size-1个字符到s容器中,遇到回车或文件结束,会结束一 次读取,并且会将回车放入容器,最后自动加上一个字符串结束标识'\0'

参数1:字符数组容器起始地址

参数2:要读取的字符个数,最多读取size-1个字符

参数3:文件指针

返回值:成功返回容器s的起始地址,失败返回NULL

ps:c语言中没有get函数,也没有fget函数———————————————
版权声明:本文为CSDN博主「灯在哪里」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dragon_time/article/details/154171722

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 15:34:39

如何基于 Elasticsearch 构建亿级相似图片搜索系统

摘要&#xff1a;在图像识别、以图搜图、图库去重等场景中&#xff0c;传统的关键词搜索已无法满足需求。本文将深入探讨如何利用 Elasticsearch 的向量检索能力&#xff0c;结合深度学习模型&#xff0c;打造高性能的相似图片搜索引擎。1. 引言&#xff1a;为什么需要“以图搜…

作者头像 李华
网站建设 2026/4/15 15:34:01

Markdown绘制流程图:展示PyTorch训练pipeline

Markdown绘制流程图&#xff1a;展示PyTorch训练pipeline 在深度学习项目中&#xff0c;一个常见的挑战是&#xff1a;如何让新成员快速理解整个训练流程&#xff1f;环境怎么配&#xff1f;数据从哪来&#xff1f;模型何时保存&#xff1f;部署依赖什么格式&#xff1f;这些问…

作者头像 李华
网站建设 2026/4/15 15:33:36

2025 MBA必备!10个AI论文平台深度测评与推荐

2025 MBA必备&#xff01;10个AI论文平台深度测评与推荐 2025年MBA论文写作工具测评&#xff1a;为何需要一份权威榜单&#xff1f; 随着人工智能技术在学术领域的广泛应用&#xff0c;越来越多的MBA学生开始借助AI工具提升论文写作效率。然而&#xff0c;面对市场上琳琅满目的…

作者头像 李华
网站建设 2026/4/15 17:20:59

年末如何挑选手机?性能与影像成关键考量

年末购物季来临之际&#xff0c;消费者挑选一款中意手机时&#xff0c;常常面对众多眼花缭乱的选项。当下手机市场展现出技术多元、功能垂直之特性&#xff0c;不同产品线针对特定用户需求做了深度优化。进行选择时&#xff0c;全面综合考量性能、影像、显示、续航以及创新交互…

作者头像 李华