如果你确实想得到一行而不是一个单独的词,可以这样做:
#include<iostream>
#include<string>
using namespace std;
int main()
{
cout << "Please enter a line:\n";
string s;
getline(cin,s);
cout << "You entered " << s << ’\n’;
}
在《C++程序设计语言》(可在线获得)的第3章,可以找到一个对诸如字符串与流这样的标准库工具的简介。对于使用C与C++进行简单输入输出的详细比较,参见我的文章《将标准C++作为一种新的语言来学习》(Learning Standard C++ as a New Language),你可以在本人著作列表(my publications list)中下载到它。
为什么C++不提供“finally”的构造?
因为C++提供了另外一种方法,它几乎总是更好的:“资源获得即初始化”(resource acquisiton is initialization)技术。基本的思路是,通过一个局部对象来表现资源,于是局部对象的析构函数将会释放资源。这样,程序员就不会忘记释放资源了。举例来说:
class File_handle {
FILE* p;
public:
File_handle(const char* n, const char* a)
{ p = fopen(n,a); if (p==0) throw Open_error(errno); }
File_handle(FILE* pp)
{ p = pp; if (p==0) throw Open_error(errno); }
~File_handle() { fclose(p); }
operator FILE*() { return p; }
// ...
};
void f(const char* fn)
{
File_handle f(fn,"rw"); //打开fn进行读写
// 通过f使用文件
}
文章来源于领测软件测试网 https://www.ltesting.net/