先说结论:如果想达到同一行输入一个字符串后接一个字符,例如这样的格式:3862767 1
(前者为字符串,后者为字符),只能使用C风格的scanf输入:scanf("%s %c", a, &ch);
(中间的空格不能少,少了ch就会读到空格)。
再说下我的心路历程,有一道水题要求输入四个整数(a,da,b,db),输入后要对第一和第三个整数的数位进行操作,所以我最开始把它们当作两个string类和两个char类型来输入。
-
测试的输入方式:
-
cin >> a >> da >> b >> db;
- 结果:a输入正常,其他三个均没有值。
-
getline(cin, a, ' '); cin >> da; getline(cin ,b, ' '); cin >> db;
- 结果:a输入正常,其他三个均没有值
-
scanf("%s%c%s%c", a, &da, b, &db);
- 结果:a输入正常,da读到空格。
-
scanf("%s %c %s %c", a, &da, b, &db);
- 结果:四个变量都输入正常。