【问题标题】:Writing a file in array in C++用 C++ 在数组中写入文件
【发布时间】:2015-02-18 16:09:39
【问题描述】:

当我运行我的程序时,它只询问大小并终止。逻辑有问题吗?

#include <iostream>
#include <fstream>
using namespace std;

int main()
{
cout << "Enter size of array\n";
int x;
cin >> x;
int a [x];
ifstream data ("numbers.txt");

if(data.is_open()){
    cout << "Enter the elements\n";
    for(int i = 0 ; i<x ; i++){
        data >> a[i];
    }
for(int j = 0 ; j<x ; j++){
    cout << a[j];
}

}
}

【问题讨论】:

  • 终止是什么意思?之后你会立即返回命令提示符吗?
  • 1) 可变长度数组是编译器扩展(考虑使用std::vector),2) 您似乎想将数字保存在文件中,但您使用了ifstream
  • 没有。不可能的。因为你在编译时没有数组的大小。
  • 您的标题说您正在写入文件,但我只看到从文件中读取。它是哪个,阅读还是写作?顺便说一句,阅读使用ifstream,写作使用ofstream。注意第一个字母的区别,“i”表示输入,“o”表示输出。
  • 我建议在main 的末尾放置一个断点。运行调试器时,这应该会阻止 IDE 关闭控制台窗口。

标签: c++ file file-io


【解决方案1】:

你不能像你试图做的那样创建静态数组:

int a [x];

相反,您需要动态分配内存:

int *a = new int[x];

并在退出前正确释放:

delete [] a;

【讨论】:

  • 推荐std::vector&lt;int&gt; 可能是更好的选择。
  • 如果这是问题所在,程序将无法编译,但可以编译(因为它使用了编译器扩展)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-07
  • 2016-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多