所以我对 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;
}
如果不知道您为data
成员使用什么类型、结构或类,或者您遇到什么错误,就很难告诉您究竟发生了什么。您还在i
for 循环之外引用,因此这可能是您的问题。
我已经重新创建了一个简短的程序,它似乎在用一个简单的结构来做你想做的事情。由于 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;
}
}
}
如果您使用的是结构体或其中con
和all
是字符串的东西,则 std::stringstoi
中有一个方法可以将字符串类型转换为 int。下面是一个简短的例子。
int x;
std::string test = "4";
x = std::stoi(test);
std::cout << x << std::endl;
请注意, stoi 中的无效参数会引发异常,但作为初学者,您可能还没有了解异常处理(但一旦掌握了窍门,就应该了解)。
希望有所帮助,加油。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句