【问题标题】:reading characters from file one by one [duplicate]一个一个地从文件中读取字符[重复]
【发布时间】:2013-02-01 20:36:32
【问题描述】:

我正在尝试逐个读取 TXT 文件字符并将其写入 output.txt 文件每行一个字符的 ASCII 数字。

每当我的代码收到 EOF ASCII 字符时,我都无法读取任何其他字符。 (这也发生在 SUB 字符上 - 意味着 DOS 中的 EOF)

这是我的代码 (.c):

while (source_size > 0) {
    ch = fgetc(in_file);     //reading file full of ASCII chars
    fprintf(p, "%d\n", ch); // write num to output.txt
     source_size--;
}

谢谢

【问题讨论】:

  • EOF 不是 ASCII 字符。

标签: c


【解决方案1】:

您没有指定操作系统或其他信息,但 DOS 一词表明您在 Windows 上。可能您打算以二进制模式打开文件(例如 "FILE* in_file = fopen(name, "rb")")。

【讨论】:

【解决方案2】:

怎么样??????

while((ch = fgetc(in_file)) != EOF)
   fprintf(p, "%d\n", ch);

【讨论】:

  • 另外,请确保 ch 是一个 int 并且(也许令人惊讶)不是一个 char。
  • 绝对是@ThomasPadron-McCarthy
  • 我一开始试过了,这就是问题所在,当 fgetc() 收到 EOF 时,我无法读取在它 ch 是整数之后出现的其他字符。
猜你喜欢
  • 2013-06-28
  • 2019-12-24
  • 2018-07-15
  • 2013-05-17
  • 1970-01-01
  • 2014-04-14
  • 2020-05-03
  • 1970-01-01
  • 2011-02-28
相关资源
最近更新 更多