【问题标题】:Need help reading in a file with integers into an array需要帮助将带有整数的文件读入数组
【发布时间】:2011-12-09 13:51:44
【问题描述】:

以下代码未从文件中读取正确的字符。知道有什么问题吗?

    ifstream inFile;
    inFile.open("chars.txt");

    char ch; //dummy variable
    char first, last;
    int first1, last1;

    for(int i=0;i<SIZE;i++)
    {
        for(int j=0;j<5;j++){
        inFile.get(first);
        inFile.get(last);

此时 first 和 last 不是文件中的正确字符。 (在第一次运行循环时)这可能很简单,但我真的不擅长这个。 提前致谢。

【问题讨论】:

  • “没有从文件中读取正确的字符”是什么意思?文件的内容是什么?您期望什么值?

标签: c++ file text input


【解决方案1】:

您不需要像那样手动解析数字。 我建议不要使用get 函数,而是使用提取运算符&gt;&gt;,如下例所示:

#include <vector>
#include <fstream>
#include <iostream>

int main()
{
  std::vector<int> values;
  std::ifstream inFile("chars.txt");
  int temp;

  // Read the values in one at a time:
  while (inFile >> temp)
  {
    values.push_back(temp);
  }

  // Demonstrate that we got them all by printing them back out:
  for (unsigned int i = 0; i < values.size(); ++i)
  {
    std::cout << "[" << i << "]: " << values[i] << std::endl;
  }
}

【讨论】:

    【解决方案2】:

    我不确定这是否适用于 C++,但我在 C# 中遇到了这个问题。

    我必须在正在读取的字符上使用Char.GetNumericValue();

    C# 中的示例代码:

    int myInt;
    char myChar = '5';
    
    myInt = Char.GetNumericValue(myChar);
    Console.WriteLine("My character as int: "+myInt.ToString());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-08
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多