【发布时间】:2014-06-11 11:28:00
【问题描述】:
我正在读取一个带有 '$' 分隔值的文件,例如 W$65345$23425,并且一直在使用 getchar() 来获取值(而 n=getchar() != '$')等等。当我得到第二个值时,我创建一个整数列表并用 getchar() 填充该列表,所以我很确定我有一个列表 [6,5,3,4,5]。如何将其转换为值为 65345 的 int? 这是我的代码:
void read_data(char* pa,int* pb,double* pc){
int n;
pa = &n;
n = getchar();
int j[25];
int m = 0;
while ((n=getchar()) != '$'){
j[m] = n;
m++;
}
pb = &j;
n = getchar();
int x[25];
m = 0;
while ((n=getchar()) != '$'){
x[m] = n;
m++;
}
pc = &x;
return ;
}
【问题讨论】:
-
getchar()的返回类型是int,而不是char。你应该先解决这个问题。 -
使用
strtol将字符串转换为数字。 -
pb = &j;抱歉,这条线让我饿了。 -
不,请在此处使用 RTFM:man7.org/linux/man-pages/man3/strtol.3.html
标签: c input integer text-files getchar