我在C中创建一个程序,从文件中读取一行并在屏幕上显示该行 我的作业要求文件必须从文件中获取一个数字并对其进行一些操作。
我获取文件内容并将其放入数组中:
while ( fgets ( line, sizeof line, file ) != NULL )
{
strcpy(arra[i], line);
printf("array ----> %d \n", arra[i]);
i++;
}
如何将此内容解析为int?
答案 0 :(得分:3)
你可以使用atoi()
int x = atoi("string");
来自您的代码示例
while ( fgets ( line, sizeof line, file ) != NULL )
{
strcpy(arra[i], line);
printf("array ----> %d \n", atoi(arra[i]));
i++;
}
答案 1 :(得分:3)
如果line
是char*
,您可以使用atoi
将其转换为整数。
printf("array ----> %d \n", atoi(line));
答案 2 :(得分:1)
#include <stdio.h>
#include <stdlib.h>
#define MAX_DATA_SIZE 10
int main(){
FILE *file;
char line[128];
int array[MAX_DATA_SIZE];
int i,count,sum;
file = fopen("data.txt","r");
/* data.txt:
100
201
5
-6
0
*/
for(i=0; NULL!=fgets(line, sizeof(line), file); ++i){
if(i == MAX_DATA_SIZE){
fprintf(stderr,"exceeded the size of the array.\n");
exit(EXIT_FAILURE);
}
array[i]=atoi(line);
}
fclose(file);
/*some operations */
count = i;
sum = 0;
for(i=0;i<count;++i)
sum += array[i];
printf("%d\n",sum);
return 0;
}