0x6efcc4 txt 文件中的输出

0x6efcc4 output in the txt file

本文关键字:输出 文件 txt 0x6efcc4      更新时间:2023-10-16

我是一个新奇的学生。我必须编写一个控制台程序,该程序从用户那里获取一个数字的输入(将来将是一个数组,但现在没关系(,将其保存在 txt 文件中,当您关闭程序并重新启动它时,它会将您之前保存在 txt 文件中的数字加载到另一个变量中(再次, 将来它将是一个数组(。想象一下,它就像图书馆员用来保存有关其存储的书籍的所有数据的软件。我想过做两个变量,一个是ifstream,另一个是ofstream,都引用同一个txt文件,这样我就可以在同一个文件上读写,而不需要外部文件。我知道你也可以将 fstream 与 :in 和 :out(类似这样(一起使用,但我读到你必须重置程序开始读取的点,我相信它对我的程序来说太复杂了,目前没有必要。到目前为止,我尝试输入一个数字并检查它是否被保存,但0x6efcc4是我得到的唯一输出,要么我输入"0"、"143"、"狗"......无论什么(输入是可变字符串类型(,我都不知道为什么。我将发布两个屏幕,包括我正在使用的代码和 txt 文件:

#include <iostream>
#include <fstream>
using namespace std;
const int DIN = 2;
int main()
{
ofstream saving("save.txt");
ifstream loading("save.txt");
string input[DIM];
if (! saving || !loading)
{
cout << "One of the files did not open correctly" << endl;
return -1;
}
else
{
cin >> input[1];
saving << input;
saving.close();
loading.close();
}
return 0;
}

实际上,我注意到我只能发布一张图片,或者我只是看不到发布更多图片的选项。txt 文件实际上是一个空白的 txt 文件,名称与代码中的名称和完全相同,0x6efcc4只在第一行写入一次

那么为什么你输入到input[1]而输出input呢?这就是您错误的原因,请尝试此操作saving << input[1];

您在输出文件中看到的是input数组的地址,而您想要的是input数组的内容。

此外,我强烈建议不要同时打开文件进行输入和输出。当您需要阅读某些内容时,打开它以供输入,并在完成后关闭它。同样,当您想写一些东西时打开它进行输出,并在完成后再次关闭它。

你应该在语句cin >> input再次查看你的代码。

您的代码定义了用户在数组元素 2 中输入的内容[1]

如果您使用以下方法,则可以摆脱错误:

cin >> input[1];

但是空格后的所有文本都将被省略。因此,更好地使用:

std::getline(std::cin, input[1]);