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

How to convert data[i].int into a vairable

本文关键字:int 转换 vaible data      更新时间:2023-10-16

所以我对c++有点陌生,目前正在处理字符串。我想输入一些量,并将它们相互比较,但由于我在数组中的数据类型中有它们,它不允许我进行子语句,我不明白为什么

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;
}

如果不知道data成员使用的是什么类型、结构或类,或者遇到了什么错误,很难告诉你到底发生了什么。你还在for循环之外引用i,所以这可能是你的问题。

我重新创建了一个短程序,它似乎用一个简单的结构来完成你想要的任务。因为结构将conall定义为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中的无效参数会引发异常,但作为初学者,您可能还没有了解异常处理(但一旦掌握了窍门,就应该了解(。

希望有帮助,干杯。