保存while循环到数组并稍后访问;

时间:2017-11-25 20:47:10

标签: c++ arrays

我有一个文本文件,其中包含3行字符串:"I"Love""You"。如何准确地保存数值并稍后访问数组?当我使用数组值0 -2更改时,它返回"You"。默认情况下,它应为0 = "I",1 = "Love",2 = "You"

到目前为止,这是我的代码。

#include "stdafx.h"
#include <iostream>

using namespace std;


int main()
{
    FILE *pFile;
    wchar_t *file = L"c:\\test.txt";
    wchar_t line[100];
    wchar_t *output[3];
    int i = 0;
    if (_wfopen_s(&pFile, file, L"r, ccs = UNICODE") == 0)
    {
        while (fgetws(line, 100, pFile))
        {

                output[i] = line;
                i++;
        }

    }

    wcout << output[0];
    return 0;
}

2 个答案:

答案 0 :(得分:0)

首先需要wchar_t *output[3];才允许3个值。但是,使用std::ifstream

可能会更好

答案 1 :(得分:0)

output[0]output[1]output[2]都指向line的值。 line的值在循环的每次迭代中都会发生变化。要修复,您需要保存已阅读的内容。有很多方法可以做到这一点。最好的方法取决于您的需求。一种方法是:

// Allocate space for each output value
wchar_t output[100][3];

//...
    // Save off the lines into the output
    while (fgetws(output[i], 100, pFile))
    {
            i++;
    }

wchar_t output[100][3]是一个双维数组。第一个维度是100,第二个维度是3.因此,这将分配3个100个字符的字符串。