C++级次考试中流相关内容 。 两个小程序

C++等级考试中流相关内容 。 两个小程序。
C/C++ code

/*#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    char s[25]="Programming language";
 ofstream f1("DATA.TXT");
 f1<<"C++ Programming";
 f1.close();
 ifstream f2("DATA.TXT");
 if (f2.good())
 {
  f2>>s;
 }
 f2.close();
 cout<<s;
 return 0;
}*/
//为什么输出的不是C++ Programming和Programming language?
/*#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    ofstream outf("D:\\temp",ios_base::trunc);
 outf<<"World Wide Web";
 outf.close();
 ifstream inf("D:\\temp");
 char s[20];
 inf>>s;
 inf.close();
 cout<<s;
 return 0;
}*/
//为什么输出的不是World Wide Web?
//对于流只是略懂一二,所以解释要详细些。谢谢!



------解决方案--------------------
1.
f1<<"C++ Programming";

这句话只是将"C++ Programming"写入到文件中,随后

f2>>s;

将文件中读出的第一个字符串(默认空格分隔)写入s中,s之前的值被覆盖掉了,所以只打印C++

2.原因是类似的,你写入到一个字符数组时,默认只写入一个单词,可以通过设置调整


------解决方案--------------------
1楼解释得很清楚了
------解决方案--------------------
探讨

1.
f1<<"C++ Programming";

这句话只是将"C++ Programming"写入到文件中,随后

f2>>s;

将文件中读出的第一个字符串(默认空格分隔)写入s中,s之前的值被覆盖掉了,所以只打印C++

2.原因是类似的,你写入到一个字符数组时,默认只写入一个单词,可以通过设置调整