【问题标题】:Permanent Change of Array in C++C++ 中数组的永久更改
【发布时间】:2016-09-08 13:32:32
【问题描述】:

我有一个 C++ 数组,我希望用户能够在 cmd 中永久更改数组中的值,即使他关闭控制台...

这是我的代码:

#include <iostream>
#include <stdlib.h>
#include <conio.h>

using namespace std;
int array[3];
int change; 
int main () {
   array[0] = 1;
   array[1] = 2;
   array[2] = 3;

   cout << "Change the second value of array (array[1])" << endl;
   cin >> change;
   array[1] = change;
}

上面的代码只是将array[1]的值更改为临时的.. 请帮帮我..

谢谢你,初级程序员

【问题讨论】:

  • 将数据存储在文件中,在开始时将其读入,然后在最后将任何更改写回文件。
  • 如果用户同时启动程序的多个实例并输入不同的值会发生什么?
  • 想象如果用户将array[1]的值改为100,那么当程序关闭并重新启动时,array[1]的值必须是100..

标签: c++ arrays


【解决方案1】:

您可以使用文件来存储数组数据,就像@NathanOliver 所说的那样。例如:

int arr[3];
ifstream in("data.txt");                                        //Open file for input
in >> arr[0] >> arr[1] >> arr[2];                               //Input all data
cout << "Change the second value of array (array[1])" << '\n';
cin >> arr[1];                                                  //Input change
in.close();                                                     //Close input from file
ofstream out("data.txt");                                       //Output to file
out << arr[0] << ' ' << arr[1] << ' ' << arr[2];
out.close();

该文件应包含arr 的起始值,中间有一个空格。

【讨论】:

  • 不需要调用remove。构造 ofstream 对象会截断文件。
  • 你能告诉我data.txt中的内容应该是什么吗?
  • @NathanOliver 感谢您的提醒
  • 我已经测试过了,但是那个数组的值变成了符号。你能帮帮我吗??
  • 非常感谢,现在我可以将数据存储到 txt 文件中了
【解决方案2】:

您在程序中使用的任何数据都存储在内存中,直到您退出程序。之后,所有数据成员都被销毁,您无法以任何方式访问它们。访问您在上一个程序“会话”期间使用的数据的唯一方法是将您的数据存储在永久存储中,例如您的文件系统。

至于如何从磁盘写入和读取数组数据,C++ 有很多不同的方法可以做到这一点。例如,您可以查看this question

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-31
    相关资源
    最近更新 更多