我有一个文本文件,其中包含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;
}
答案 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个字符的字符串。