Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 用单词从文件中提取double_C++_Ifstream - Fatal编程技术网

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);