【C++】标准流与命名空间简介 ( Visual Studio 2019 中创建 C++ 项目 | iostream 标准流 | std 标准命名空间 | cout 控制台输出 )

250 篇文章 150 订阅





一、Visual Studio 2019 中创建 C++ 项目



打开 Visual Studio 2019 , 选择 " 菜单栏 / 文件 / 新建 / 项目 " 选项 , 创建 新项目 ;

在这里插入图片描述

选择 Windows 平台的 C++ 语言的 控制台程序 ;

选择创建 " 空项目 " , 点击 右下角的 " 下一步 " 按钮 ;

在这里插入图片描述

输入项目名称 和 位置 , 创建工程 ;
在这里插入图片描述

在 " 解决方案资源管理器 " 中 , 右键点击 " 源文件 " , 选择 " 添加 / 新建项 " ;

在这里插入图片描述

在 " 添加新项 " 窗口中 , 选择添加 " C++ 文件(.cpp) " 文件 , 名称设置为 " hello_world.cpp " ;

然后 , 点击 右下角 的 " 添加 " 按钮 , 即可添加 C++ 源码文件 ;

在这里插入图片描述

在 " 解决方案资源管理器 " 中 , 创建后的源码 , 显示在 源文件 目录下 ;

在这里插入图片描述





二、C++ 代码编写



所有的 C++ 程序都要先包含 标准 IO 流的 头文件 , 以及 使用 std 标准命名空间 ;


1、iostream 标准流


使用 #include "iostream" 包含 C++ 的标准 IO 流头文件 ;

// 包含 C++ 头文件
#include "iostream"

iostream 标准 IO 流 , 用于处理

  • 标准输入输出
  • 文件输入输出

等操作 ;


iostream 常用标准输入输出流 :

  • cin : 标准输入流 , 从 标准输入设备 读取数据 ;
  • cout : 标准输出流 , 向 标准输出设备 输出数据 ;
  • cerr : 标准错误流 , 向 标准错误设备 输出错误信息 ;
  • fstream : 标准文件输入输出流 , 从文件中 读取数据 , 向文件中输出数据 ;

包含了 iostream 头文件后 , 就可以使用上述输入输出流 ;


2、std 标准命名空间


使用 std 标准命名空间 , 该 命名空间中 , 定义了很多标准定义 ;

// 使用 std 标准命名空间
//		该命名空间中 , 定义了很多标准定义
using namespace std;

上述代码中的 using namespace std; 使用标准命名空间代码 , 是 预处理指令 , 用于 通知 编译器 在当前源码中使用 std 标准命名空间 ;

std 命名空间 是 英文单词 " standard " 缩写 , 该 命名空间 定义了 标准库 的所有元素 , 如 : cout , cin , string 等 ;

  • 如果 不使用 std 标准命名空间 , 使用其中的元素时 , 必须添加 std:: 前缀 , 如 : std::cout , std::cin , std::string 等 ;
  • 如果 使用了 std 标准命名空间 , 可以直接使用 cout , cin , string 等元素 , 不必添加 std:: 前缀 ;

3、cout 控制台输出


在 C 语言中 , 使用 printf 函数 , 就可以向控制台输出数据 , 在 C++ 中仍然可以使用这种方式 ;

	// 使用 C 语言的方式在控制台输出文本
	printf("printf Hello World\n");

C++ 中使用 iostream 中的 cout 标准流输出 , 更加方便 ;

cout 标准输出流 , 可以 将 数据 输出到 标准输出 ( 控制台 ) , 在此处其作用是进行标准输出 , 向控制台输出内容 ;

左移操作符 << 操作符 , 用于将右侧的 字符串内容数据 发送到左侧的流中 , 也就是将 "cout Hello World" 字符串数据发送到 cout 标准输出流中 ;

endl 操作符 的作用是 刷新输出流 , 将内容打印到控制台 并且回车换行 ;

	// 使用 C++ 的方式在控制台输出文本
	//		cout 的作用是进行标准输出 , 向控制台输出内容
	//		C++ 中的 左移操作符 << 
	//			在 C++ 语言中进行了操作符重载 进行了功能增强
	//		endl 的作用是 将内容打印到控制台 并且回车换行
	cout << "cout Hello World" << endl;

4、代码示例


代码示例 :


// 包含 C++ 头文件
#include "iostream"

// 使用 std 标准命名空间
//		该命名空间中 , 定义了很多标准定义
using namespace std;

int main() 
{
	// 使用 C 语言的方式在控制台输出文本
	printf("printf Hello World\n");

	// 使用 C++ 的方式在控制台输出文本
	//		cout 的作用是进行标准输出 , 向控制台输出内容
	//		C++ 中的 左移操作符 << 
	//			在 C++ 语言中进行了操作符重载 进行了功能增强
	//		endl 的作用是 将内容打印到控制台 并且回车换行
	cout << "cout Hello World" << endl;
	
	// 控制台暂停 , 按任意键继续向后执行
	system("pause");
}

执行结果 :

printf Hello World
cout Hello World
Press any key to continue . . .

在这里插入图片描述

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
下面是iostream头文件的源码: ```cpp #ifndef _IOSTREAM_H #define _IOSTREAM_H #include <ios> // basic_ios, streampos, streamoff, etc. #include <streambuf> // basic_streambuf #include <istream> // basic_istream #include <ostream> // basic_ostream #include <cstdio> // EOF, FILE #include <wchar.h> // wchar_t namespace std { extern istream cin; // standard input stream extern ostream cout; // standard output stream extern ostream cerr; // standard error (output) stream extern ostream clog; // standard logging (output) stream template <class charT, class traits = char_traits<charT>> class basic_iostream : public basic_ios<charT, traits> { public: using char_type = charT; using int_type = typename traits::int_type; using pos_type = typename traits::pos_type; using off_type = typename traits::off_type; using traits_type = traits; // constructors explicit basic_iostream(basic_streambuf<charT, traits>* sb); virtual ~basic_iostream(); // delete copy and move constructors and assignments basic_iostream(const basic_iostream&) = delete; basic_iostream& operator=(const basic_iostream&) = delete; basic_iostream(basic_iostream&&) = delete; basic_iostream& operator=(basic_iostream&&) = delete; // basic_iostream operations basic_ios<charT, traits>* tie() const; basic_ios<charT, traits>* tie(basic_ios<charT, traits>* tiestr); basic_streambuf<charT, traits>* rdbuf() const; void rdbuf(basic_streambuf<charT, traits>* sb); // conversions operator void*() const; bool operator!() const; // unformatted input int_type get(); basic_iostream<charT, traits>& get(char_type& c); basic_iostream<charT, traits>& get(char_type* s, streamsize n); basic_iostream<charT, traits>& get(char_type* s, streamsize n, char_type delim); basic_iostream<charT, traits>& getline(char_type* s, streamsize n); basic_iostream<charT, traits>& getline(char_type* s, streamsize n, char_type delim); basic_iostream<charT, traits>& ignore(streamsize n = 1, int_type delim = traits::eof()); basic_iostream<charT, traits>& read(char_type* s, streamsize n); streamsize readsome(char_type* s, streamsize n); // unformatted output basic_iostream<charT, traits>& put(char_type c); basic_iostream<charT, traits>& write(const char_type* s, streamsize n); // formatted input basic_iostream<charT, traits>& operator>>(basic_ios<charT, traits>& (*pf)(basic_ios<charT, traits>&)); basic_iostream<charT, traits>& operator>>(basic_istream<charT, traits>& (*pf)(basic_istream<charT, traits>&)); basic_iostream<charT, traits>& operator>>(basic_streambuf<charT, traits>* sb); basic_iostream<charT, traits>& operator>>(bool& n); basic_iostream<charT, traits>& operator>>(short& n); basic_iostream<charT, traits>& operator>>(unsigned short& n); basic_iostream<charT, traits>& operator>>(int& n); basic_iostream<charT, traits>& operator>>(unsigned int& n); basic_iostream<charT, traits>& operator>>(long& n); basic_iostream<charT, traits>& operator>>(unsigned long& n); basic_iostream<charT, traits>& operator>>(long long& n); basic_iostream<charT, traits>& operator>>(unsigned long long& n); basic_iostream<charT, traits>& operator>>(float& f); basic_iostream<charT, traits>& operator>>(double& f); basic_iostream<charT, traits>& operator>>(long double& f); basic_iostream<charT, traits>& operator>>(void*& p); basic_iostream<charT, traits>& operator>>(basic_ios<charT, traits>& (*pf)(basic_ios<charT, traits>&)); basic_iostream<charT, traits>& operator>>(basic_istream<charT, traits>& (*pf)(basic_istream<charT, traits>&)); basic_iostream<charT, traits>& operator>>(basic_streambuf<charT, traits>* sb); // formatted output basic_iostream<charT, traits>& operator<<(basic_ios<charT, traits>& (*pf)(basic_ios<charT, traits>&)); basic_iostream<charT, traits>& operator<<(basic_ostream<charT, traits>& (*pf)(basic_ostream<charT, traits>&)); basic_iostream<charT, traits>& operator<<(basic_streambuf<charT, traits>* sb); basic_iostream<charT, traits>& operator<<(bool n); basic_iostream<charT, traits>& operator<<(short n); basic_iostream<charT, traits>& operator<<(unsigned short n); basic_iostream<charT, traits>& operator<<(int n); basic_iostream<charT, traits>& operator<<(unsigned int n); basic_iostream<charT, traits>& operator<<(long n); basic_iostream<charT, traits>& operator<<(unsigned long n); basic_iostream<charT, traits>& operator<<(long long n); basic_iostream<charT, traits>& operator<<(unsigned long long n); basic_iostream<charT, traits>& operator<<(float f); basic_iostream<charT, traits>& operator<<(double f); basic_iostream<charT, traits>& operator<<(long double f); basic_iostream<charT, traits>& operator<<(const void* p); basic_iostream<charT, traits>& operator<<(basic_ios<charT, traits>& (*pf)(basic_ios<charT, traits>&)); basic_iostream<charT, traits>& operator<<(basic_ostream<charT, traits>& (*pf)(basic_ostream<charT, traits>&)); basic_iostream<charT, traits>& operator<<(basic_streambuf<charT, traits>* sb); }; // typedefs using iostream = basic_iostream<char>; using wiostream = basic_iostream<wchar_t>; // manipulators extern basic_istream<char>& ws(basic_istream<char>& is); extern basic_istream<wchar_t>& ws(basic_istream<wchar_t>& is); // object instances extern istream cin; extern ostream cout; extern ostream cerr; extern ostream clog; // non-member functions template <class charT, class traits> basic_istream<charT, traits>& flush(basic_istream<charT, traits>& is); template <class charT, class traits> basic_ostream<charT, traits>& flush(basic_ostream<charT, traits>& os); template <class charT, class traits> basic_istream<charT, traits>& ws(basic_istream<charT, traits>& is); template <class charT, class traits> void swap(basic_ios<charT, traits>& a, basic_ios<charT, traits>& b) noexcept; } #endif /* _IOSTREAM_H */ ``` 该头文件定义了C++标准输入输出(cin、cout、cerr、clog)以及基本的输入输出对象。同时还定义了一系列输入输出的操作符和控制符。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值