gpt4 book ai didi

c++ - 这段代码中有什么错误?

转载 作者:行者123 更新时间:2023-11-28 02:31:46 24 4
gpt4 key购买 nike

当我尝试构建此代码时,它显示错误!而且我不知道如何解决!!

错误 C3531:“x”:类型包含“auto”的符号必须具有初始值设定项
错误 C2143:语法错误:在“:”之前缺少“,”

#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <map>
#include <cctype>
using namespace std;

int main(){
ifstream in("input.txt");
ofstream out("output.txt");
string s;
int line=0;
vector<string> vec(1,"dummy");
multimap<int,int> M;

while(getline(in, s)){
line++;
vec.push_back(s);
if(line%12==10){
string temp="";
for(auto x:s) if(isdigit(x)) temp+=x;
int key = stoi(temp);
M.insert(make_pair(key,line));
}
}

auto it = M.rbegin();
while(it != M.rend()){
int i = it->second;
int start = (int(i/12))*12 +1;
for(int j=1; j<=12; j++) out << vec.at(start++) << "\n";
it++;
}


in.close();
out.close();
return 0;
}

最佳答案

由于VS2010不支持语法,就用pre-c++11的语法吧:

if(line%12==10){
string temp="";
for (std::string::const_iterator iter=s.begin(); iter!=s.end(); ++iter)
if (isdigit(*iter)) temp += *iter;
int key = stoi(temp);
M.insert(make_pair(key,line));
}

或者也许:

if (line%12 == 10) {
int key = 0;
for (std::string::const_iterator iter=s.begin(); iter!=s.end(); ++iter)
if (isdigit(*iter)) key = (key * 10) + (*iter - '0');
M.insert(make_pair(key, line));
}

并去掉临时字符串和stoi

关于c++ - 这段代码中有什么错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28797813/

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