我运行了这个简单的程序:
#include <iostream>
#include <string>
using namespace std;
#include <boost/regex.hpp>
int main ()
{
// boost::regex fullname_regex ("[A–Z]+[a–z]*, [A-Z][a–z]*");
boost::regex fullname_regex ("[A-Z]+[a-z]*, [A-Z][a-z]*");
string name;
cout << "Enter you full name: " << flush;
getline (cin, name);
if (! regex_match (name, fullname_regex))
{
cout << "Error: name not entered correctly" << endl;
}
return 0;
}
我刚刚从某个地方复制的。当我取消注释注释行(原始副本/粘贴的一部分)并注释下一行(由我自己键入)时,程序总是拒绝该名称。否则它会按预期工作。我正在使用 vim。我确实:set list
看到了隐藏的字符,并且线条是相同的。我在原始行之前插入了一个很长的注释以便将其向下移动,怀疑是磁盘故障(非常旧的系统),但我仍然得到了同样的错误。这是一个没有 gui 的 ubuntu 服务器,我使用 putty 来执行此操作。我不习惯在 linux 下遇到这样的问题,如果有人知道什么可以解释这种奇怪的行为,请告诉我。也许 vim 仍然使用原始页面中的一些选项,这些选项确实在这里并且已格式化,但:set list
没有显示它们?