如何在用Visual Studio编码的UTF-8中使用ftell和fseek?

时间:2017-03-22 10:37:13

标签: c++ c visual-studio utf-8 crt

我想回到档案中的已知位置。因此我使用ftell来保存位置,后来我用fseek来回来。

我知道这些限制,寻求特定的位置。但这并不适用于我的情况。我有一个已知位置,我想回到它。

这里是我编写的测试代码,以简化问题。它只是保存文件中的位置。读取一个字符串,返回并重新读取该字符串。我得到一个断言,因为有时我得到两个不同的结果。

<?php
$conn=mysqli_connect("127.0.0.1:3306","root","","admin");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="select count('user_id') from login_user";
$result=mysqli_query($conn,$sql);
$row=mysqli_fetch_array($result);
echo "$row[0]";
mysqli_close($conn);
?>

编译程序以供unicode使用。 文本文件只包含一些行,有些行有UTF-8字符。 Here a test file.

我在VS-2010,VS-2013,VS-2015中进行了测试。在所有版本中,我都会得到一个ASSERT。

这是一个错误,还是我误解了ftell / fseek?

如何返回文件中的先前读取位置?

或者我发现了CRT中的错误?

PS:在VS-2010中,我已经提交了一个错误for this case。他们写道,它将被修复。接缝从未修复过。

0 个答案:

没有答案