2017-03-17 49 views
0
#include <vector> 
#include <cstdlib> 
#include <iostream> 
#include <algorithm> 
#include <string> 
#include <fstream> 
#include <stdlib.h> 
using namespace std; 
• 
• //main func declaration etc... 
• 
//Vectors for storing information from file 
vector<string> include; 
vector<string> exclude; 
string temp; //for storing whatever the stream is on 
int len = atoi(puzzle_file >> temp); //first pos 
int width = atoi(puzzle_file >> temp); //second pos 

위의 코드는 파일을 읽고 해당 int에 숫자를 저장합니다. 나는 내 파일 헤더에 사용법 #include < \ cstdlib> 및 사용법 #include < \ stdlib.h>에도 불구하고, " 'atoi 함수'에 대한 호출에 대한 일치 기능"말한다 오류 받고 있어요. 여기에서 어디로 가야할지 모릅니다. stackoverflow 및 기타 포럼에 대한 연구가 실제로 도움이되는 것을 찾지 못했습니다. 어떤 충고? 당신은 stoi 대신 atoi 사용해야합니다 감사합니다atoi()가 예상대로 작동하지 않습니다.

+1

는 [mcve] 게시하시기 바랍니다. –

+1

'c_str()는'그것이 얼굴을 제출 서버가 완벽하게 호환되지 않기 때문에 우리는 C++ 11 사용하지 않는 것이 좋습니다 .. 내 수업에 대한 –

답변

0

puzzle_file >> temp 표현식은 istream이지만이 매개 변수를 허용하는 atoi 오버로드가 없습니다.

당신은 atoi(temp.c_str());

1

.

은 파라미터로 atoi이 파라미터로 취하는 반면, std::string은 파라미터로 취한다.

그리고 잊지 마세요 stoi 11 C++ 이후의 새로운 기능입니다.

+0

을 갈 수있는 방법입니다. 어쨌든, 내가 stoi를 사용해 보았을 때 여전히 "stoi '에 대한 호출을위한 일치하는 기능이 없다는 오류를 주었다. 함수를 잘못 호출했거나 #include 문을 그냥 잊어 버렸습니까? –

+0

이 어떻게 여기에 코드의 자세한 내용을 게시에 대해 내가 생각 발생하지 하는가? @ ThunderBow98 – Jiahao

+0

서식 댓글에 대한 끔찍한 그래서 그냥 감사 미안 영업을 확인 –

0

호출 할 필요가 당신은 하나 개의 명령어를 건너 시도 잃었다. puzzle_file >> temptemp이 아니라 puzzle_file을 반환합니다. 따라서 입력 스트림에 atoi을 적용하면 bool로 변환됩니다. 사용

int len, width; 
puzzle_file >> len >> width; 
if (! puzzle_file)...