【问题标题】:New line in different languages [closed]不同语言的新行[关闭]
【发布时间】:2014-12-08 19:20:59
【问题描述】:

我在使用我的测试系统时遇到了问题。我正在用 Java 创建一个文件,用 Java 写入它,但在 Pascal 编译器中读取它。 所以,这可能不是很清楚,但是当我在 Java (Eclipse) 中做这样的事情时

    File file = new File("D:/i.txt");
    BufferedReader bf = new BufferedReader(new FileReader(file));
    PrintWriter pw = new PrintWriter(new FileWriter(file));

    pw.print("hey\n");
    pw.print("you");
    bf.close();
    pw.close();

它给了我一个看起来像的文件




当我在 Pascal 语言上运行这段代码时

begin
  assign(input,'D:/i.txt'); reset(input);
  while not eoln(input) do write(1);
 end.

这意味着:写“1”直到找到新的行分隔符。 它不会停止写。

但这没关系。这是另一件奇怪的事情:Pascal 必须有换行符或换行符,或换行符,我发现这是 ASCII 表上的字符号 10(LF,换行符)。

所以,我决定换一种方式。

    File file = new File("D:/i.txt");
    BufferedReader bf = new BufferedReader(new FileReader(file));
    PrintWriter pw = new PrintWriter(new FileWriter(file));

    pw.print("hey"+(char)10);
    pw.print("you");
    bf.close();
    pw.close();

这会给我与第一段代码相同的输出文件(最后显然)。 但是我所有的 Pascal 编译器仍然不断抱怨并写了数百个。

如何解决新行的问题? 谢谢。

【问题讨论】:

  • 每种语言都有自己的规则是有道理的。你看过pascal的文档吗?

标签: java newline pascal eol


【解决方案1】:

我认为无限循环(写数百个)是因为您从未从输入中读取任何内容,因此它永远不会在行尾。尝试将read(input,ch); 放入循环中。

【讨论】:

  • 大声笑,这让我现在感觉很愚蠢:\
  • @DenisRozimovschi 所以 read(input,ch) 是 Java 还是 Pascal?
  • 我只是忘了放置 read()。它现在甚至可以使用 "\n" 和 "(char)10"。
  • 帕斯卡。 while not eoln(input) do begin read(input,ch); do write(1); end;
  • 是的。现在明白了。顺便说一句,当您使用“输入”和“输出”时,您只能使用 read(ch) 或 write(ch)。
猜你喜欢
  • 2021-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-31
  • 2020-08-23
  • 2010-09-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多