如何将data[i].int转换为vaible
How to convert data[i].int into a vairable
所以我对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
,所以这可能是你的问题。
我重新创建了一个短程序,它似乎用一个简单的结构来完成你想要的任务。因为结构将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中的无效参数会引发异常,但作为初学者,您可能还没有了解异常处理(但一旦掌握了窍门,就应该了解(。
希望有帮助,干杯。
相关文章:
- 是否可以从int转换为enum类类型
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 是什么导致了这种使用三进制而不是短整型的有符号int到无符号int转换
- 将字符串中的 int 转换为字母;
- 主.cpp:18:20:错误:从"int*"转换为"int"会失去精度 [-fa
- 将非常大的 int 转换为双倍,在某些计算机上会损失精度
- 如何将矢量<int>转换为字符数组?
- C++ 无法从 const int* 转换为 const_iterator
- 我不断收到错误 C2440'=':无法从"int *(__cdecl *)(int *,int *,int,int)"转换为"int *
- 如何将 int[4] 转换为 std::array<int,4>?
- 如何将data[i].int转换为vaible
- 将 int 转换为字符串,然后连接另一个变量以创建完整扩展名,然后将其转换为 const_char*
- 将私有矩阵形式 int 转换为双 C++
- 无法将参数 1 从 'int' 转换为 'int &'
- 将 int 转换为字符串后始终得到 0
- isspace 函数的性能警告,从 int 转换为布尔值
- 将大 int 转换为浮点数,而不舍入 c++
- 错误:无法将'uint8* {aka unsigned int*}'转换为"常量emxArray_uint8_T*"?
- 将未签名的INT转换为BCD
- 在 C++ 中将 int 转换为双精度