首页 > 解决方案 > 如果将另一个字符添加到数组,则从 ifstream 分配字符数组会破坏数组

问题描述

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

输入.txt

Hi

主文件

#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

有什么帮助吗?

标签: c++arrayscharfstream

解决方案


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


推荐阅读