如何将 data[i].int 转换为变量

拉文伯恩

所以我对 C++ 有点陌生,我目前正在处理字符串。我想输入一些数量并将它们相互比较,但是由于我在数组中的数据类型中有它们,它不会让我做substrcution,我不明白为什么

for (int i=0;i<N;i++)
{
    cout << "Name"<< endl;
    cin >> data[i].name;
    cin >> data[i].all;
    cin >> data[i].con;
}

exceed = data[i].con-data[i].all;
while (exceed > maxvalue){
maxindex = -1;
maxvalue = exceed;

if (maxvalue > 0){
    cout << data[i].name;
}
ufoxThis

如果不知道您为data成员使用什么类型、结构或类,或者您遇到什么错误,就很难告诉您究竟发生了什么。您还在ifor 循环之外引用,因此这可能是您的问题。

我已经重新创建了一个简短的程序,它似乎在用一个简单的结构来做你想做的事情。由于 struct 将con定义all为 int 类型,因此它们在输入时进行转换,并且i不再在 for 循环之外引用。

#include <iostream>
#include <string>

struct dataType {
    std::string name;
    int all;
    int con;
};

int main() {
    int N = 2;
    int maxValue = 3;
    dataType data[N];

    for (int i = 0; i < N; ++i) {
        std::cout << "Name" << std::endl;
        std::cin >> data[i].name;
        std::cin >> data[i].all;
        std::cin >> data[i].con;

        int exceed = data[i].con - data[i].all;
        if (exceed > maxValue) {
            std::cout << data[i].name << std::endl;
        }
    }
}

如果您使用的是结构体或其中conall是字符串的东西,则 std::stringstoi有一个方法可以将字符串类型转换为 int。下面是一个简短的例子。

int x;
std::string test = "4";
x = std::stoi(test);
std::cout << x << std::endl;

请注意, stoi 中的无效参数会引发异常,但作为初学者,您可能还没有了解异常处理(但一旦掌握了窍门,就应该了解)。

希望有所帮助,加油。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章