1

我有一个文本文件如下:
6 1 C
6 2 S
6 3 R
6 4 R

这只是前四行。其中 90 个分为 30 个部分(6、7 和 8 个)的 3 个部分。我只想将字符读入我的数组。

这是我到目前为止所拥有的

#include <iostream>
#include <fstream>
using namespace std;

// Global variables
const int MONTHS = 3;
const int DAYS = 30;

// Function definitions
void readFile(char daily[][DAYS], int size);
void showStats(char daily[], int days);

int main()
{

    char daily[MONTHS][DAYS];

    readFile(daily, MONTHS);

    //  Make sure we place the end message on a new line
    cout << endl;

    //  The following is system dependent.  It will only work on Windows
    system("PAUSE");

    /* 
    // A non-system dependent method is below
    char anyKey;
    cout << "Press any key to continue";
    cin >> anyKey;
    */
    return 0;
}

void readFile(char daily[][DAYS], int size)
{
        // open file.
        ifstream inputFile("RainOrShine.dat");
        if (!inputFile)
        {
                cout << "ERROR: cannot find/read file." << endl;
                exit(EXIT_FAILURE);
        }
        cout << "Reading file...\n";

        // read data.
        for (int months = 0; months < size; months++)
        {
                for (int days = 0; days < DAYS; days++)
                {
                  inputFile >> daily[months][days];
                  cout << daily[months][days] << ", ";
                }
                cout << "\nDone with Row[" << (months);
                cout << "]...\n";
        }

        // close file.
        inputFile.close();
        cout << "Closing File...\n" << endl;
}

void showStats(char daily[], int days)
{
     //code
}

目前它正在循环遍历它,并将 30 个这样的元素放在我元素的第 1 行:6、1、C、6、2、S、6、3、R、6、4、R、6、5、C、6 , 6, S, 6, 7, S, 6, 8, S, 6, 9, S, 6, 1, 0,

然后在第二个和第三个一样抓住下一组。我应该看一个多维数组吗?

任何帮助是极大的赞赏。

4

2 回答 2

4

如果您只想阅读第三列,可以这样做:

std::ifstream infile("thefile.txt");

int dummy1, dummy2;
char c;

std::vector<char> v;

while (infile >> dummy1 >> dummy2 >> c)
{
    std::cout << "We got: '" << c << "'.\n";
    v.push_back(c);
}
于 2013-04-28T21:04:00.967 回答
0

只需更换

inputFile >> daily[months][days];

经过

char tmp;
inputFile >> tmp >> tmp >> daily[months][days];
于 2013-04-28T21:07:47.420 回答