0

我正在阅读一个 txt 文件并获取所有不是空格的字符,使用它们将它们转换为 int(int)c-'0'并且这是有效的。

问题是数字是否超过 1 位,因为我正在逐个字符地读取字符。

我怎么能像一个字符序列一样阅读,将这个字符序列转换为 int?

我尝试使用字符串,但是当我尝试将此字符串传递给我的另一个函数时,它将每个索引视为一个数字,但我需要的是整个字符串被视为一个数字。

有任何想法吗?

4

2 回答 2

0

进行转换的一种方便方法是将整数读入缓冲区(字符串),然后调用atoi. 三重确保字符串正确地以空值结尾。

于 2012-11-17T20:52:26.597 回答
0

一种解决方案,我不会说你的情况是好是坏,因为你没有提供任何代码,但你可以做这样的事情:(伪代码)

int i;
int val = 0;
char *string = "5238785";
for (i = 0; i < strlen(string); i++) {
    val = val * 10 + atoi(string[i]);
}

注意:我简化了它,你应该做更多的字符串控制,以确保你不会越界等。确保字符串是 NULL 终止的\0,但这个概念是你一次读取一个数字,然后移动到目前为止,您所读到的内容“还剩一步”以适应下一个数字。

于 2012-11-17T20:53:10.977 回答