将变量分配给提取的数据c ++

时间:2015-12-04 15:31:29

标签: c++ coordinates

基本上我要做的是从txt文件中获取坐标数据并为它们分配变量,以便稍后我可以计算这些坐标和设置位置(其数据是常量)之间的距离。 txt文件看起来像这样:

  • City1 45 21
  • City2 61
  • City3 88 25等。

每一行都是一组坐标,x和y之间有空格。我需要分别存储每个x和y变量。我不知道如何做到这一点,因为我刚刚开始使用c ++。如果有帮助,则txt文件名为“CoordinateData.txt”。 任何帮助将非常感激。 这是我目前的代码,但它似乎没有按照我需要的方式工作:

#include <iostream>
#include <fstream>
#include <sstream>

using namespace std;


int main()
{
   ifstream inputFile("coordinates.txt");
   string line;

   while (getline(inputFile, line))
   {
      istringstream ss(line);

      string name;
      int var1, var2;

      ss >> name >> var1 >> var2 ;
   }  
}

1 个答案:

答案 0 :(得分:1)

您需要数组,检查name,var1和var2的定义:

#include <iostream>
#include <fstream>
#include <sstream>

using namespace std;


int main()
{
   ifstream inputFile("coordinates.txt");
   string line;

   string name[100];
   int var1[100], var2[100];
   int currentLineNumber = 0;

   // It would be better: (getline(inputFile,line) && currentLineNumber < 100)

   while (getline(inputFile, line))
   {
      istringstream ss(line);



      ss >> name[currentLineNumber] >> var1[currentLineNumber] >> var2[currentLineNumber] ;
      currentLineNumber = currentLineNumber + 1;
   }  
}

您可以像这样迭代从文件中获取的数据:

for (i = 0; i < currentLineNumber; ++i) {
    cout << name[i] << "," << var1[i] << "," << var2[i] << "\n";
}