我有一个输入文件,我用基本myFile >> variable
读入,因为我知道格式和格式总是正确的。我正在阅读的文件格式为instruction <num> <num>
,要使>>
正常工作,我会以字符串形式阅读所有内容。如果我有3个变量,一个接收每一行,我怎么能转换字符串&lt; 1&gt; (例如)进入int 1?我知道字符串的第一个和最后一个字符是需要删除的括号,然后我可以转换为int,但我是C ++的新手,并希望了解这方面的最佳方法(找到并删除&lt;&gt ;,然后转换为int)
答案 0 :(得分:1)
使用stringstream
#include <string>
#include <sstream>
#include <iostream>
int main() {
std::string str = "<1>";
int value;
std::stringstream ss(str);
char c;
ss >> c >> value >> c;
std::cout << value;
}
答案 1 :(得分:0)
首先要获得中间角色,你可以char myChar = inputString.at(1);
。然后你可以int myInt = (int)myChar;
答案 2 :(得分:0)
即使您删除<>
个字符,您仍然使用>>
将文件内容导入字符串,因此您仍需要将其转换为int。如果你只有1个值,你可以按照Nicholas Callahan在前一个答案中所写的内容,但是如果你想要读取多个字符作为int,你就没有选择,只能进行演员。
答案 3 :(得分:0)
您也可以使用sscanf
。
#include <cstdio>
#include <iostream>
#include <string>
int main()
{
std::string str = "<1234>";
int value;
sscanf(str.c_str(), "<%d>", &value);
std::cout << value << std::endl;
}