前言在算法竞赛、机考面试中,输入输出是最基础也最容易踩坑的环节。很多同学明明算法逻辑正确,却因为输入读取错误导致全题 WA(Wrong Answer),尤其是涉及整行读取、多行输入、混合输入的场景。本文系统梳理getline的用法、多行输入的实现、常见坑点与解决方案,整理出一套可直接复用的输入模板,帮你彻底搞定 C++ 输入问题。一、核心输入函数基础:cin 与getline的本质区别1.cin s:按分隔符读取核心特性:以空格、换行、制表符为分隔符,自动跳过所有空白字符读取到分隔符时停止,分隔符不会存入字符串适合读取单个单词、数字等无空格数据示例:string s; cin s; // 输入 "Ca 45",s 仅为 "Ca",空格后的内容留在缓冲区2.getline(cin, s):整行读取核心特性:读取一整行内容,包含所有空格,仅以换行符\n为结束标志换行符不会存入字符串,读取后自动丢弃换行符适合读取带空格的句子、完整标题等整行数据示例:string s; getline(cin, s); // 输入 "Ca 45",s 完整为 "Ca 45",包含空格3. 核心区别对照表特性cin sgetline(cin, s)分隔符空格、换行、制表符仅换行符\n是否跳过空白字符