下面是我的代码片段。基本上,我想知道为什么分别打印contextFile[0]
和contextFile[1]
与通过for
循环输出时会有区别。
在contextfile.txt
(在这种情况下为target_file_name
的值)中,我具有以下内容:
山核桃迪克里点有一个小农场,你觉得我。
这是代码:
cin >> target_file_name;
ifstream fileExist(target_file_name);
if (fileExist)
{
int count = 0;
int contextSize = 1000;
int keySize = 1000;
char *contextFile;
char *keyFile;
contextFile = new char[contextSize];
keyFile = new char[keySize];
string command;
fileExist >> contextFile[count];
while (!fileExist.fail())
{
count++;
fileExist >> contextFile[count];
}
cout << "printing individual: " << contextFile[0] << contextFile[1];
cout << "Printing the contextfile array: " << endl;
for (int i = 0; i < count; i++)
{
cout << contextFile[count];
}
当我单独打印时,我得到
hi
,这是正确的输出。当我通过
for
循环打印时,我会直接得到================
。为什么有区别?
最佳答案
因为你打印
cout << contextFile[count];
一遍又一遍,而不是
cout << contextFile[i];
在循环中,由于未初始化
contextFile[count]
,因此导致未定义的行为。