outFile C++ not writing to output text

微笑、不失礼 提交于 2019-12-11 10:38:06

问题


Down below is my incomplete program. I am having problems with writing to a text file. For example I want to write the number of snow days to a text file, but nothing shows up in the textfile when I debug in VS 2010. It does display my info and name, but nothing else works. It wont write anything after that. its NOT writing to a text file.

#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;   
}

here is what my output displays: College Class (centered) Tom Hangler (centered)

If i try to write anything after this, Nothing is written ever to the output file. And the output text file IS in my VS project that contains my .cpp file. I added the text file to project.


回答1:


Try closing the stream at the end of the function, it looks like the data isn't getting flushed.

outFile.close();



回答2:


Your code compiles and works on gcc 4.4.5 (apart from typo in amounttOfSnow).

Is it possible that you are looking at an old Ex1Out.txt file ? Its most likely created in the Release or Debug subdirectory in your project, not where the .cpp files are.




回答3:


in your for loop, you only collect the amount of snow, but you don't write it to the text file.

Do you want to do something like this?

...
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()
...


来源:https://stackoverflow.com/questions/9181299/outfile-c-not-writing-to-output-text

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!