|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
求助各位大佬 第十五行的数据类型错误应该怎么改啊?
题目:写一个程序,提示用户输入一个整型数,然后输出这个整型数的每一位数字,数字之间插一个空格,例如,当输入是12345时,输出为:1 2 3 4 5
- #include<iostream>
- #include<string>
- #include<math.h>
- using namespace std;
- int main()
- {
- int t,i,a,b,y,s;
- string x;
- cout << "请输入一个整型数:" << endl;
- cin >> x;
- t = x.length(), a = 0,b=0,s=0;
- for (i = t-1; i >=0; i--)
- {
- y = pow(10, i);
- a = int((x-s) / y);
- b = a * y;
- cout << a << " ";
- s = s + b;
- }
- return 0;
- }
复制代码
系统示错:严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2676 二进制“-”:“std::string”不定义该运算符或到预定义运算符可接收的类型的转换 Practice4 C:\Users\x\source\repos\Practice4\Practice4\2.4.cpp 15
根据错误提示,第十五行出现了数据类型错误。问题出在将字符串类型的变量 x 转换为整型变量 s 上。
在C++中,无法直接将字符串类型转换为整型类型。你可以使用 std::stoi() 函数将字符串转换为整型。
修改第十五行的代码如下:
这样就能将输入的字符串转换为整型,继续执行后面的逻辑。
另外,你也需要包含头文件 <string> 来使用 std::stoi() 函数。所以你的程序应该像下面这样修改:
- #include<iostream>
- #include<string>
- #include<math.h>
- using namespace std;
- int main() {
- int t, i, a, b, y, s;
- string x;
- cout << "请输入一个整型数:" << endl;
- cin >> x;
- t = x.length();
- a = 0;
- b = 0;
- s = std::stoi(x);
- for (i = t - 1; i >= 0; i--) {
- y = pow(10, i);
- a = int((s) / y);
- b = a * y;
- cout << a << " ";
- s = s - b;
- }
- return 0;
- }
复制代码
这样应该就可以正确执行并输出每一位数字了。如果还有其他问题,请随时提问。
球一个最佳答案谢谢啦!这对我非常重要!  
|
|