【问题标题】:C++ fread reads random characters at the beginning of the fileC++ fread 读取文件开头的随机字符
【发布时间】:2015-10-30 10:38:40
【问题描述】:

我有一个像这样的输入文件;

A;Ali;Aksu;N;2;deposit;withdraw

我是这样读的;

char a[5];
fread(a, sizeof(char), 5, input);

但是当我尝试打印时

cout << a;

它一开始会写随机字符

+^%'A;

【问题讨论】:

  • 文件扩展名和编码是什么?
  • Unicode BOM? .........
  • 我对这些东西有点陌生,所以我不知道如何检查它们
  • 获取记事本++。这将使人们能够将文件存储为 ascii。 od -c 文件也是如此
  • 我下载了 notepad++,打开了新的 .txt 文件并将输入文件复制到了新的文件中,它工作正常。谢谢。但我不明白为什么会这样。

标签: c++ file fread


【解决方案1】:

您需要空字符。改变

char a[5];

char a[6];
a[5] = 0;

如果代码是 unicode,请将整个代码中的 char 更改为 wchar

【讨论】:

  • 但它在开头添加了随机字符。如果它是空字符,这些随机字符不应该在末尾吗?当我用 strlen() 查看字符串时,字符串的长度发生了变化。
  • 我们不知道您使用的文件的编码?
猜你喜欢
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多