【发布时间】:2015-03-25 05:29:07
【问题描述】:
我有一个来自strtok() 的令牌,我想将其转换为整数并使用atoi() 放置在数组中。但是,我遇到了困难。
char string[LMAX];
int array[LMAX];
int number;
char *token = NULL;
int count = 0;
FILE *fp;
fp = fopen("test.txt","r");
while(fgets (string, LMAX, fp) != NULL) {
//Reading the file, line by line
printf("%s", string);
token = strtok(string,",");
array[count++] = atoi(token);
//printf("%d",array[count]);
while(token=strtok(NULL,";,")){
number = atoi(token);
array[count++] = number;
printf("%d",array[count++]);
}
}
number 的类型为int,并且该数组也被初始化为int 数组。
当我运行以下代码时,我会打印出所有的 0,但有趣的是,当我将 printf("%d", number); 替换为 printf("%d", atoi(token)); 时,我得到了正确的输出。我希望能够实际存储 atoi(token),但它不允许我这样做。
任何帮助都很好
编辑:LMAX = 1024
【问题讨论】:
-
count未初始化? -
请发布您的完整代码。该错误超出了您发布的三行。
-
数字变量的数据类型是什么。
-
"number" 是 int 类型
-
这个问题不能用这个确切的代码重现(link to a demo)。