C++输入输出流(cin/cout)怎么用?C++ iostream基础教程【新手入门】

用cin和cout输入输出需引入头文件、使用using namespace std;并写在main函数中;cin>>读数据自动跳过空白符,类型不匹配会失败;cout

cincout 做输入输出,核心就两件事:引入头文件、用好操作符。不需要记复杂函数,掌握几个关键点就能上手写程序。

必须写的三行基础代码

每次用 cin/cout,开头这三行几乎固定:

  • #include —— 引入输入输出流功能
  • using namespace std; —— 省得每次写 std::cinstd::cout
  • int main() { ... return 0; } —— 所有可执行代码放这里

输入:用 cin 读数据,注意类型匹配

cin 从键盘读内容,用 >> 操作符,一次读一个变量。它会自动跳过空格、换行、制表符。

例如:

int age;
double price;
string name;
cin >> age >> price >> name;

输入时可以写成:25 19.9 apple(空格分隔),也能换行输。但要注意:

  • 如果用户输了字母却要存进 intcin 会失败,后续输入可能卡住
  • string 默认只读到第一个空格,想读整行要用 getline(cin, str)

输出:用 cout 打印,支持拼接和格式控制

cout 把内容送到屏幕,用 操作符,可以连续输出多个东西:

int x = 10;
cout << "x = " << x << ", double is " << x*2 << endl;

常用小技巧:

  • endl 换行并清空缓冲区;用 "\n" 更轻量,只换行
  • 输出小数控制位数:#include 后加 cout → 输出 3.14
  • 对齐输出:setw(5) 设宽度,left/right 控制对齐方向

常见坑和应对方法

新手容易在这几处出错:

  • 混用 cingetline:先用 cin >> x 再用 getline,第二行常读不到——因为 cin 留下了换行符。解决:加一句 cin.ignore(); 清掉缓冲区
  • 输入失败没检查:可用 if (!cin) { ... } 判断是否读取异常
  • 忘记 using namespace std; 又不写 std:: 前缀,编译直接报错

基本上就这些。cin/cout 不复杂但容易忽略细节,写几个小例子练熟,后面学文件流、字符串流就顺多了。