gpt4 book ai didi

c++ - 我的函数返回一个错误的值 C++

转载 作者:行者123 更新时间:2023-11-30 02:28:58 25 4
gpt4 key购买 nike

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <cstring>


using namespace std;

int StrInt(int x,string y)
{

return y.at(x);
cout << y.at(x) << "hallo";
}
int Get_Int(int linie, int zeichen){
ifstream file;
string line;
vector<string>lines;
file.open("C:/Soi/input/input.txt");
if(file.is_open())
{
cout << "file is open" << endl;
int x = 0;
lines.resize(1);
while(getline(file, line))
{
lines[x] = line;
lines.push_back(line);
x++;
cout << lines[x] ;

}
lines.erase (lines.begin()+x);
cout << endl;

}
else{
cerr<<"file could not be opened!";

}
for(unsigned int i = 0; i < lines.size(); i++)
{
cout << lines[i] << " /" << i << endl;
}
string hh = lines[linie];
cout << hh.at(zeichen) << " hallo" << endl;
cout << "returned value: " << hh.at(zeichen) << endl;
return hh.at(zeichen);

}


int main() {
cout << "Programm gestartet" << endl;
int zeichen = 0;
int linie = 0;
int resultat = Get_Int(linie, zeichen);
int opperand1 = 2;
int opperand2 = 48;


if (opperand1 + opperand2 == resultat){
cout << resultat << endl << "true" ;
return 0;
}
else{
cout << resultat << endl;
return 0;
}

return 0;
}

我试图获得的正常值是:3代码还没有完成。如果这两个值类似于结果,稍后我将尝试打印出来。我尝试对代码进行一些更改,但没有奏效。我从

获得的值(value)

cout << hh.at(zeichen)

不同于我从中获得的值

计算<<结果

非常感谢

抱歉我的英语不好。

最佳答案

你的函数被声明为返回一个int,但你返回的是:

    string hh = lines[linie];
/*...*/
return hh.at(zeichen);

问题是 string::at 返回一个 char& 并且 char 很高兴地转换为 int 而没有问题,但你不会得到你期望的结果。你必须解析这个数字,比如:

    return hh.at(zeichen) - '0';

关于c++ - 我的函数返回一个错误的值 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40189883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com