我刚刚开始编程。
我想以格式
的形式阅读文本文件中的整数文件 int1(space)int2(space)int3
int4(space)int5(space)int6
int7(space)int8(space)int9
data file example (actually has 25 million lines)
1000002 1 55
1000002 1000006 33
1000002 1000007 8
我正在尝试读取数字和每行我想将3个int存储到一个单独的变量中,这样我就可以创建一个每个结构有3个int的结构。我有一个函数来创建结构但是我不知道如何逐行读取数字然后将每个3个整数分配给一个临时变量。
我将使用动态分配来存储结构,所以只将数组作为临时存储
FILE *fp = fopen("uboss.txt", "r");
//char text[255];
int i = 1;
int a = 1;
int numberArray[9999];
int tmpUI = 0;
int tmpAI = 0;
int tmpPC = 0;
if (fp == NULL)
{
printf("Error Reading File\n");
exit (0);
}
while (!feof(fp))
{
fscanf(fp, "%d ", &numberArray[i]);
printf("Number %d: %d\n",i,numberArray[i]);
tmpUI = numberArray[a];
tmpAI = numberArray[a+1];
tmpPC = numberArray[a+2];
i++;
}
fclose (fp);
答案 0 :(得分:3)
你不是唯一一个询问这项任务的人。尝试一种更简单的方法:
fgets()
,sscanf(str, "%d%d%d", &a, &b, &c);
扫描整行3个整数并检查返回值,它应为3
。可能需要注意其他问题:
int
类型中的值,该怎么办?答案 1 :(得分:0)
如果您知道fscanf如何工作(并返回),那就很简单了:
while( fscanf(fp, "%d%d%d", &tmpUI, &tmpAC, &tmpPC) == 3 )
{
...
}