我使用fgets()
将一个文件的输入读入
char buf[10];
文件的输入是
10,10,4,10
我想遍历行并将char
数组中的每个数字存储为其自己的整数值,但我对如何做到这一点有点迷失。如果有人能给我指出正确的方向,我会非常感激,谢谢!
有不同的方法可以做到这一点。如果你正在学习C语言,我建议你自己动手写解决方案,在理解它是如何工作的之后,使用一些标准的库函数,如@Jeff Holt所说的strtok
。
最简单的方法是创建一个变量,该变量将是我们正在读取和迭代buf
数组的当前数字,并在每一步检查当前字符是否为数字。
参见将字符转换为整数的问题。
那么结果将是这样的:
const int size = 10;
char buf[size];
// fill buf, but be sure that input is less than 10 characters
//create array for result
char result[size];
int result_size = 0;
//can also be char, but if input numbers are big enough, it might overflow
int current_value = 0;
for (int i = 0; i < size; i++) {
if (buf[i] >= '0' && buf[i] <= '9') {
//convert to int and add to current_value
} else {
//store parsed integer
result[current_size] = current_value;
current_size++;
current_value = 0;
}
}