下面是我不完整的程序。我在写入文本文件时遇到问题。例如,我想写一个文本文件的下雪天数,但是当我在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文件。我将文本文件添加到项目中。
答案 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()
...