我想打印出来时有一些问题 \n 我在用着 endl 为了那个原因。问题是当我在Windows7上运行代码时,它不会打印出Newline。但是它将在Ubuntu打印出Newline。两种操作系统都使用相同的编译器GNU G ++。

因此,我想知道是否有一些不同的方法可以打印在Windows中的Newline?

void translate(ofstream &out, const string &line, map<string, string> m)
{
   stringstream ss(line);
   string word;
   while(ss >> word)
   {
      if(m[word].size() == 0)
         out << "A";
      else
         out << m[word] << " ";
   }
   out << "\n";
}
有帮助吗?

解决方案

输出“ n'或使用endl”将导致完全相同的内容(唯一的区别是endl也潮红)。当写入该 n字符时,如果文件处于“文本模式”,则运行时库将其转换为平台的本机机制以指示行。在UNIX上,这是不必要的,因为该机制是 n字节。在Windows上, n变为 r n(返回马车返回,线馈电)。我怀疑您知道所有这一切,但我正在审查它,以防万一。

简而言之,只要您的运行时库已为Windows设置,您所拥有的代码将按照您的预期工作。我怀疑您使用的是Cygwin的G ++或其他一些G ++端口,即使在文本模式下,也无法为Windows风格的线进行设置。一些编辑不会正确解释未翻译的 n。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top