【发布时间】:2016-05-12 08:09:43
【问题描述】:
我想从包含文本和数字的输入文件中逐个字符循环。
我以为我可以循环播放
char count;
while( c != ' ' && c != '\n' && c != '\t' ) {
count += c;
c = fgetc(fp);
}
要说从文本文件中获取“11”,然后使用atoi() 转换为 int,但后来我意识到我只是添加 ASCII 数字。
我对 C 很陌生,据我所知,字符串只是 char 数组 - 这是否意味着我必须将“1”和“1”放入 char 数组中?
但是我不得不担心数组大小并将其转换为数字?
【问题讨论】:
-
C 规范规定,无论编码如何,数字都必须是连续的。这意味着你可以做例如
'1' - '0'获取整数值1。从那里很容易创建整数值,无论用于输入的基数如何。无需存储在字符串中以供以后与atoi一起使用。如果您不想即时构建数字并使用atoi,此评论也会为您提供提示。 -
快速修复是做
count += c - '0'; -
Lundin,当我进行更改时,它会将“11”转换为 2