怎么回事,嗯? 2020-11-04 23:52 采纳率: 0%
浏览 29

为什么 数组变量定义的顺序会影响之后的cin写入字符到数组,和fstream变量file将文件的内容输出到数组?

#include "iostream"
#include "fstream"
using namespace std;
int main(int argc, char const *argv[])
{
  fstream filea;
  char b[100], a[100];
  filea.open("C.txt", ios::in);
  cin >> b;
  cout << "b:" << b << endl;
  filea >> a;
  cout << "a:" << a << endl;
  filea.close();

  fstream file;
  char c[3], d[100];
  //char d[100], c[3]; //这里调换后就正常了。。。不知道为啥
  file.open("C.txt", ios::in);
  cin >> c;
  cout << "c:" << c << endl;
  file >> d;
  cout << "d:" << d << endl;

  return 0;
}

图片说明

我调换了变量定义的顺序就正常了。
求大佬指点,实在没整明白。。。

  • 写回答

1条回答 默认 最新

  • qtchen_1988 2020-11-05 10:33
    关注

    数组char c[3]最多可以输入两个字符(因为还有'\0');否则数组越界了

    评论

报告相同问题?

悬赏问题

  • ¥15 咨询一个PYTHON的问题
  • ¥15 机器学习建模调参,roc评价指标
  • ¥15 RCS plot 包内置数据集使用时报错,如何解决?
  • ¥15 keil+mspm0g3507+二维总线舵机
  • ¥15 如何用wireshark分析找出url接口和param参数
  • ¥15 有谁知道这是阿里云那个应用的域名吗,怎么调用?
  • ¥30 正则表达式的一些问题
  • ¥15 C#如何使用不需要安装 Microsoft Excel 的机器上的方法或者库实现:将指定Excel区域导出为图片(例如A1:AO50)
  • ¥15 虚拟机只能接收不能发送
  • ¥15 为什么echarts极坐标柱形图的图形显示的特别小呢