【发布时间】:2014-04-30 12:29:34
【问题描述】:
我正在使用fgetc() 从仅包含数字的文件中读取字符。然后我将字符转换为 int 并打印出来。没关系。但是在打印出所有数字之后,最后我得到了-38-49 值。我用谷歌搜索了它,但没有关于它的内容。
在输入文件中,我有以下内容:0105243100000002200000010001318123
输出是这样的:0105243100000002200000010001318123-38-49
我的代码:
do
{
c1 = fgetc(fread)-'0';
if (!isspace(c1))
{
printf("%d", c1);
}
if (feof(fread))
{
break;
}
} while (1);
【问题讨论】:
-
另一个问题
isspace(c1)->isspace(c1+'0') -
您应该在打印 c1 之前检查
feof,或者在减去“0”之前检查fgetc是否返回EOF。