c++ - 写入文本文件的数据部分损坏且无法恢复

标签 c++ file ifstream ofstream

template <class T>
void savetext(T *a, char const *b) //writes to text file inside .sln however the text file is corrupt
{
    ofstream fout(b, ios::out);
    for (int i = 0; a[i] != '\0'; i++)
        fout << a[i] << endl;
    cout << "Text file successfully written to." << endl;
}

template <class T>
void gettext(T *a, char const *b) //this is where the error occurs: inside the text file it puts the right values along with piles of junk. Why is this? 
{

    ifstream fin(b, ios::in);
    if (fin.is_open())
    {
    cout << "File opened. Now displaying .txt data..." << endl; 
        for (int i = 0; a[i]!= '\0'; i++)
        {
            fin >> a[i];
        }
        cout << "Data successfully read." << endl;
    }
    else 
    {
        cout << "File could not be opened." << endl;
    }
}

int main()
{
    const int n1 = 5, n2 = 7, n3 = 6;
    int a[n1], x, y, z;
    float b[n2] = {};
    char c[n3] = "";

    //Begin writing files to text files which I name herein.
    cout << "Writing data to text 3 text  files." << endl;
    savetext(a, "integer.txt");
    savetext(b, "float.txt");
    savetext(c, "string.txt");
    cout << endl;

    //Retrieve the text in the files and display them on console to prove that they work.  
    cout << "Now reading files, bitch!" << endl;
    gettext(a, "integer.txt");
    gettext(b, "float.txt");
    gettext(c, "string.txt");
    cout << endl;

    return 0;

system("PAUSE");
}

大家好,晚上好。我有一个 C++ 程序,目前正在将数据(整数、 float 和字符)写入 3 个单独的文本文件。但是,当它将数据写入文本文件时,会发生两件事:数据在文本文件中,但一堆难以理解的 wingdings 文本和大数字和大负数也是如此——我从未输入过的数据。

因此,我无法从文本文件中检索信息,也无法显示文本文件的信息。我该如何解决该问题?谢谢。

最佳答案

您的第一个问题是您正在将未初始化的数据写入文件。

关于c++ - 写入文本文件的数据部分损坏且无法恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42047673/

相关文章:

c++ - libmemcached : SERVER HAS FAILED AND DISABLED UNTIL TIMED RETRY

c++ - 如何将 C 文件指针转换为通用 C++ 流?

Python 文件 io 缓冲

java - 如何从打开文件的不同 JSP 页面关闭文件

c++ - 无法让 ifstream 在 XCode 中工作

c++ - 使用 basic_ifstream<wchar_t> 读取俄语字符 (Unicode)

c++ - 在命名空间中时如何为变量指定根命名空间

c++ - 从数字到 0 最快的方法

python - 从 Pandas 数据框中删除字典引用

c++ - 让 std::ifstream 处理 LF、CR 和 CRLF?