将文本文件读入vector(double,double,string)? C ++

时间:2015-09-30 17:23:43

标签: c++ file text vector double

我的文字格式使用纬度经度位置名称 ,例如:

41.3333 34.3232 Old Building

我必须阅读此文本文件(从命令行),用空格分隔每一行,使用stodlatlong转换回{{1然后将整个文件读入矢量或列表。

这就是我目前所困扰的:

double

问题:

  1. 我是否可以了解如何继续实施?
  2. 答案:从这里我需要查看文件中的每一行并用空格分割它们然后将它们存储在矢量中。所以文本文件的第一个数字是纬度,第二个经度,第三个(字符串)是位置。

1 个答案:

答案 0 :(得分:1)

每当你最终使用C ++时,这些都是一些一般性的观点: -

  1. 如果可以,请避免使用指针。更喜欢引用或复合类,如字符串代替char *。

  2. 在线C ++参考可以帮助您轻松找到正确的用法。

  3. 在大多数情况下,GDB可以帮助您解决问题中的问题。

  4. 正如评论中所建议的那样,您必须首先读取字符串流中的文件,然后才能解析它。我没有编译下面的代码,但我希望它能让你知道如何做到这一点。在这种情况下,文件是标准输入。您可以通过以下方式阅读: -

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
    
      <meta charset="UTF-8">
    
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    
      <style type="text/css">
        body {
          margin: 25px;
        }
        .center {
          padding: 10px 0;
        }
        input[type=number] {
          font-size: 22px;
          padding: 5px;
          width: 50px;
        }
        .star-rating {
          display: inline-block;
        }
        .star {
          font-size: 30px;
        }
        .star:before {
          content: '★';
          color: #ddd;
          text-shadow: 2px 2px #bbb;
        }
        .star-rating[data-value="1"] .star:nth-child(-n + 1):before,
        .star-rating[data-value="2"] .star:nth-child(-n + 2):before,
        .star-rating[data-value="3"] .star:nth-child(-n + 3):before,
        .star-rating[data-value="4"] .star:nth-child(-n + 4):before,
        .star-rating[data-value="5"] .star:nth-child(-n + 5):before,
        .star-rating[data-value="6"] .star:nth-child(-n + 6):before,
        .star-rating[data-value="7"] .star:nth-child(-n + 7):before,
        .star-rating[data-value="8"] .star:nth-child(-n + 8):before,
        .star-rating[data-value="9"] .star:nth-child(-n + 9):before,
        .star-rating[data-value="10"] .star:nth-child(-n + 10):before {
          color: #fff455;
          text-shadow: 2px 2px #c3bb41;
        }
      </style>
    
    </head>
    
    <body>
    
      <div class="center">
    
        <input type="number" value="0" min="0" max="3" class="star-control" data-target="#star-1">
    
        <div id="star-1" class="star-rating" data-value="0">
          <span class="star"></span>
          <span class="star"></span>
          <span class="star"></span>
        </div>
    
      </div>
    
      <div class="center">
    
        <input type="number" value="0" min="0" max="5" class="star-control" data-target="#star-2">
    
        <div id="star-2" class="star-rating" data-value="0">
          <span class="star"></span>
          <span class="star"></span>
          <span class="star"></span>
          <span class="star"></span>
          <span class="star"></span>
        </div>
    
      </div>
    
      <div class="center">
    
        <input type="number" value="0" min="0" max="10" class="star-control" data-target="#star-3">
    
        <div id="star-3" class="star-rating" data-value="0">
          <span class="star"></span>
          <span class="star"></span>
          <span class="star"></span>
          <span class="star"></span>
          <span class="star"></span>
          <span class="star"></span>
          <span class="star"></span>
          <span class="star"></span>
          <span class="star"></span>
          <span class="star"></span>
        </div>
    
      </div>
    
      <script type="text/javascript">
        function onStarControlChange() {
    
          var $this = $(this),
            value = $this.val(),
            target = $this.data('target');
    
          $(target).attr('data-value', value);
    
        }
    
        $('.star-control').on('change', onStarControlChange);
      </script>
    
    </body>
    
    </html>