【发布时间】:2020-09-30 04:46:40
【问题描述】:
我和我的朋友有这个问题,我们想减少或改变文件中数字的值,但我们需要使用结构来做到这一点。这在 C++ 中是否可行?对不起,如果不是我是 C++ 初学者
这是输入文件
50
60
这里是代码
#include <iostream>
#include <fstream>
using namespace std;
struct number
{
int numberChange;
};
int main(int argc, char** argv)
{
ifstream file;
file.open("value.txt");
number arr[100];
int numberOfnumbers;
while (file >> arr[numberOfnumbers].numberChange)
{
numberOfnumbers++;
}
for (int i = 0; i < numberOfnumbers; i++)
{
cout << arr[i].numberChange << endl;
}
return 0;
}
控制台输出是这样的
50
60
我想将第一个数字 50 的值更改为喜欢 45 但我不知道该怎么做
【问题讨论】:
-
您可以覆盖文件中的字符,只要结果长度相同。例如,如果用
1000覆盖50,则可以覆盖文件中的下一个字符。 -
读入数据,进行更改并写入新文件。
-
从文件中读取数据时优先使用
std::vector。数组可能溢出;或者您可能会浪费空间(例如,当只有 3 个数据时分配 100 个插槽)。 -
@ThomasMatthews 是的,我知道,但这仅用于示例目的。还是谢谢你的建议
-
这在 C++ 中是否可行? 当然可以使用结构或类来保存数组的数据.并更改数据中的值。然后将数据写回文件。
struct MyData {std::vector <int> data;};