Windows 上的 GnuPlot“第 1 行的数据错误”

问题描述 投票:0回答:1

背景:

GnuPlot 无法读取编译的 C 代码生成的数据(在 Windows 10 电脑上)。

详情:

这是我的(大大简化用于测试)数据文件“data1”

0.0000e+00 0.0000e+00
5.0000e-01 2.5000e-01

这是由

制作的
#include <stdio.h>
void main()
{
    double x=0.0 , y=0.0;
    printf("%.4e %.4e\n",x,y);
    x=0.5; y=x*x;
    printf("%.4e %.4e\n",x,y);
}

在 Visual Studio Code 1.84.2(使用 gcc 的 MSYS2 版本 12.2.0)上编译成我称之为“SPAM”的可执行文件。在 Windows power shell 的该目录中,我调用

.\SPAM > data1

使用 GnuPlot 5.4(补丁级别 8)给我带来了这个麻烦:

gnuplot> plot 'data1'
              ^
         Bad data on line 1 of file data1

尝试:

直接使用

plot '-'
输入这些数据效果很好。 使用Notepad++查看数据文件没有显示隐藏或特殊字符。 将数据文件的内容复制粘贴到新文件中即可解决问题! 但我不能复制我的所有(实际上巨大)数据文件。

问题:

    GnuPlot 不喜欢的数据文件中隐藏了什么?
  1. 我可以通过更改 GnuPlot 中的设置/标志来解决这个问题吗?
  2. 我的 VSC 和 gcc 安装/构建是否有问题,会生成“奇怪”的文件?
gnuplot msys2
1个回答
0
投票
不确定这是否是解决方案,但@helper的评论可能是一个提示。较新版本的 gnuplot(您有 5.4.8)绝对可以读取 ANSI 和 UTF-8 编码的文本文件,但不是它们的所有变体。

当我在 Notepadd++ 中转换文件的编码时,我可以重现您的错误消息,例如从 UTF-8 到 UTF-8-BOM。鼠标右键单击状态行中的编码。

那么,您的 Notepad++ 在文件状态行右侧显示的编码是什么?

如果您的 C 代码生成 UTF-8-BOM 或 UTF-16 或其他一些编码,您可能需要在 C 程序中更改它。

© www.soinside.com 2019 - 2024. All rights reserved.