如果向数组添加另一个字符,则从 ifstream 分配字符数组会破坏数组

Assigning char array from ifstream breaks array if adding another char to array

所以我有一个作业使用字符数组而不是字符串。您从 .txt 文件和 ifstream 分配数组。我必须编写的一个函数是将数组与另一个数组连接起来。但是,如果我在初始单词后添加任何额外的字符,数组就会中断,即使我用大量 space.

初始化了数组

input.txt

Hi

main.cpp

#include <iostream>
#include <fstream>

ifstream in("input.txt");

int main()
{
   char A[50];

   in >> A;
   cout << A << endl;   // expecting to print "Hi"

   A[2] = 't';
   cout << A << endl;   // expecting to print "Hit"

   in.close();
   return 0;
}

我希望看到:

Hi
Hit

而是打印:

Hi
HitpB

有什么帮助吗?

在将值替换为索引 2 后,您忘记在零终止字符数组中添加 '\0' 字符。