不知道您为data
成员使用的是什么类型,结构或类,或者遇到什么错误,很难告诉您到底发生了什么。您还在for循环之外引用i
,所以可能是您遇到的问题。
我重新创建了一个简短的程序,该程序似乎可以使用简单的结构来完成您的目标。由于该结构将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;
}
}
}
如果您使用的结构是con
和all
是字符串,则std :: string stoi
中有一种可以将字符串类型转换为int的方法。下面是一个简短的示例。
int x;
std::string test = "4";
x = std::stoi(test);
std::cout << x << std::endl;
请注意,stoi中的无效参数会引发异常,但是作为初学者,您可能尚未了解异常处理(但是一旦掌握了所有知识,就应该知道)。
希望有帮助,加油。
本文链接:https://www.f2er.com/3164793.html