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