我正在尝试打开一个文本文件并将浮点值保存到特定的内存地址,以便在汇编程序中使用它们。我的问题是我对文本文件中值的格式有限制:
if(sscanf(line,"%f mm %f mm",
&data1[linesread], &data2[linesread]) != 2)
{
fprintf(stderr, "Error in line: %sn",line);
fprintf(stderr, "Aborted.");
break;
}
%f mm %f mm
sscanf()
代表什么?
%f
意味着该行的第一个和第二个值必须是浮点值,但我不明白"mm"是什么意思。
当我尝试阅读格式如下的行时:
5.0 2.0
我总是得到:
Read: 5.0 2.0
Error in line: 5.0 2.0
Aborted.
也许你可以试试这个
if(sscanf(line, "%f %f", &data1p[linesread], &data2[linesread]) != 2)
您的代码和输入文件都需要同意是否应该存在 mm。
正如 Jurica 所说,从代码中删除两个 mm。或者,您可以尝试 Paul 的建议,在输入文件中添加两个 mm。适合您的正确解决方案取决于输入文件的格式限制。
我的猜测是mm表示毫米,这可能是数据的单位。