当日总结
在cpp中读取数字(时,只会把空白字符(空格、回车、制表符 \t)自动跳过;而逗号、分号、字母等会被视为「无效字符」,导致读取失败或中断。
解决办法:用 cin 先读取逗号 / 分号,再读取数字:
int a;
double b;
char sep;
// 输入:10,3.14
cin >> a >> sep >> b;
先把整行输入读成字符串,再替换 / 分割逗号 / 分号,最后转数字:
string line;
getline(cin, line);
replace(line.begin(), line.end(), ',', ' ');
replace(line.begin(), line.end(), ';', ' ');
istringstream iss(line);
int a;
double b;
iss >> a >> b;

浙公网安备 33010602011771号