我正在阅读一个 txt 文件并获取所有不是空格的字符,使用它们将它们转换为 int(int)c-'0'
并且这是有效的。
问题是数字是否超过 1 位,因为我正在逐个字符地读取字符。
我怎么能像一个字符序列一样阅读,将这个字符序列转换为 int?
我尝试使用字符串,但是当我尝试将此字符串传递给我的另一个函数时,它将每个索引视为一个数字,但我需要的是整个字符串被视为一个数字。
有任何想法吗?
进行转换的一种方便方法是将整数读入缓冲区(字符串),然后调用atoi
. 三重确保字符串正确地以空值结尾。
一种解决方案,我不会说你的情况是好是坏,因为你没有提供任何代码,但你可以做这样的事情:(伪代码)
int i;
int val = 0;
char *string = "5238785";
for (i = 0; i < strlen(string); i++) {
val = val * 10 + atoi(string[i]);
}
注意:我简化了它,你应该做更多的字符串控制,以确保你不会越界等。确保字符串是 NULL 终止的\0
,但这个概念是你一次读取一个数字,然后移动到目前为止,您所读到的内容“还剩一步”以适应下一个数字。