C++ 用单词从文件中提取double
我知道这可能是一项简单的任务,在阅读其他问题的答案时,我发现这段代码应该可以做到这一点C++ 用单词从文件中提取double,c++,ifstream,C++,Ifstream,我知道这可能是一项简单的任务,在阅读其他问题的答案时,我发现这段代码应该可以做到这一点 #include<fstream> #include<iostream> #include<iomanip> #include<string> using namespace std; int main() { const char* filename = "integral_wh.out"; std::ifstream inFile(filena
#include<fstream>
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
int main() {
const char* filename = "integral_wh.out";
std::ifstream inFile(filename);
// Make sure the file stream is good
if(!inFile) {
cout << endl << "Failed to open file " << filename;
return 1;
}
double n;
string word;
while(inFile >> word >> n){
cout << word;
cout << n;
}
return 0;
}
当我运行程序时,它不能读取双精度,它不能执行任何操作。
我也试过了
while(inFile >> n){
cout << n;
}
while(infle>>n){
cout对于标准流,stream-in操作符(operator>
)使用一个空格来分隔令牌-在这种情况下,您的读取操作将失败,因为它将读取一个字符串(整数,
),然后下一个令牌(示例:
)将尝试解析为双精度-这将失败
你需要消耗所有的字符串标记,然后是double等等。读整行,在空白处拆分成一个向量,然后得到向量的最后一个和第三个到最后一个项目怎么样?哦,这解释了为什么它没有达到我的预期!我尝试在读取double之前循环字符串来消耗all!是的,这可能是我想到了最简单的办法,想知道为什么它不起作用。
while(inFile >> n){
cout << n;
}
pair<double,double> alpgen = make_pair(3.33645,0.31588);