atoi() 没有按预期工作
atoi() not working as expected
#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
上面的代码应该读入一个文件并将数字存储在相应的整数中。尽管我的文件头中有#include <\cstdlib> 和#include <\stdlib.h>,但我收到一个错误 "no matching function for call to 'atoi'"。不确定从这里去哪里。在 Whosebug 和其他论坛上做了一些研究,找不到任何真正帮助我的东西。有什么建议吗?谢谢
stoi
接受 std::string
作为参数,而 atoi
接受 const char*
作为参数。
并且不要忘记 stoi
是自 c++11 以来的新功能。
puzzle_file >> temp
表达式 returns istream
,但是没有 atoi
重载可以接受这样的参数。
你应该打电话给atoi(temp.c_str());
您试图跳过一条指令但失败了。 puzzle_file >> temp
returns puzzle_file
而不是 temp
。因此,您将 atoi
应用于转换为布尔值的输入流。使用:
int len, width;
puzzle_file >> len >> width;
if (! puzzle_file)...
#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
上面的代码应该读入一个文件并将数字存储在相应的整数中。尽管我的文件头中有#include <\cstdlib> 和#include <\stdlib.h>,但我收到一个错误 "no matching function for call to 'atoi'"。不确定从这里去哪里。在 Whosebug 和其他论坛上做了一些研究,找不到任何真正帮助我的东西。有什么建议吗?谢谢
stoi
接受 std::string
作为参数,而 atoi
接受 const char*
作为参数。
并且不要忘记 stoi
是自 c++11 以来的新功能。
puzzle_file >> temp
表达式 returns istream
,但是没有 atoi
重载可以接受这样的参数。
你应该打电话给atoi(temp.c_str());
您试图跳过一条指令但失败了。 puzzle_file >> temp
returns puzzle_file
而不是 temp
。因此,您将 atoi
应用于转换为布尔值的输入流。使用:
int len, width;
puzzle_file >> len >> width;
if (! puzzle_file)...