outFile C ++不写入输出文本

时间:2012-02-07 17:57:09

标签: c++ format fstream file-io

下面是我不完整的程序。我在写入文本文件时遇到问题。例如,我想写一个文本文件的下雪天数,但是当我在VS 2010中调试时,文本文件中没有显示任何内容。它确实显示了我的信息和名称,但没有其他工作。之后它不会写任何东西。它不写入文本文件。

#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>

using namespace std;

const string INFORMATION = "College Class";
const string MY_NAME = "Tom Hangler";

int main(void)
{

    ofstream outFile;


    int numberOfSnowDays;
    int greatestSnowDay;
    int dayNumber;
    double amounttOfSnow;


    outFile.open("Ex1Out.txt");
    outFile << setw(51) << INFORMATION << endl << setw(48) << MY_NAME << endl;



    cout << "Please enter num of days it snowed: " << endl;
    cin >> numberOfSnowDays;
    outFile << setw(10) << "Number of days of snow is: " << setw(10) << numberOfSnowDays;     

    int index;
    //Problem 1 for-loop
    for (index = 0; index < numberOfSnowDays; index++)
    {   
        cout << "Enter day: " << endl;
        cin >> dayNumber;
        cout << "Enter amount of snow: " << endl;
        cin >> amountOfSnow;

    };

    return 0;   
}

这是我的输出显示的内容: 大学班级(中心) Tom Hangler(居中)

如果我在此之后尝试写任何内容,则不会将任何内容写入输出文件。输出文本文件IS在我的VS项目中,包含我的.cpp文件。我将文本文件添加到项目中。

3 个答案:

答案 0 :(得分:0)

您的代码编译并使用gcc 4.4.5(除了amounttOfSnow中的拼写错误)。

您是否可能正在查看旧的Ex1Out.txt文件? 它很可能是在项目的Release或Debug子目录中创建的,而不是.cpp文件所在的位置。

答案 1 :(得分:0)

在函数末尾尝试closing流,看起来数据没有被刷新。

outFile.close();

答案 2 :(得分:0)

在你的for循环中,你只收集雪量,但你不会把它写到文本文件中。

你想做这样的事吗?

...
for (index = 0; index < numberOfSnowDays; index++)
{   
    cout << "Enter day: " << endl;
    cin >> dayNumber;
    cout << "Enter amount of snow: " << endl;
    cin >> amountOfSnow;
    // next line is new:
    outFile << "Day#: "<< dayNumber << ", snow: "<< amountOfSnow<<endl;
};
outFile.close()
...