大家好,我这里有问题。我正在编写一个C代码,用于从txt文件中读取并从此txt内的信息创建索引表。我正在使用getchar()函数读取txt文件,并在我的“ch”变量中逐个获取每个char。当我运行我的程序时,我正在终端上进行分段错误错误。这是所有代码,我评论了代码行,我正在考虑问题,并与我的问题相关:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct{ // Here is my structure of Index Table
char name[10]; // Here is my char array for storing the name data from file
int key;
} fileIndex;
int main(int argc, char *argv[])
{
int i, k=0, j=0, lines=0, offset=0;
char ch;
FILE *pFile;
pFile= fopen("/etc/passwd","r");
if (pFile == NULL)
{
fprintf(stderr, "Failed to open file.\n");
exit(1);
}
while(!feof(pFile))
{
ch = fgetc(pFile);
if(ch == '\n')
{
lines++;
}
}
fileIndex *index = (fileIndex *)malloc(lines);
rewind(pFile);
index[0].key=0;
while(!feof(pFile))
{
ch = fgetc(pFile);
offset++;
if(ch == '\n'){
k++;
index[k].key=offset;}
if(offset==index[k].key+1){// And here I want to take the name information from my txt file
while(ch!=':'){
index[k].name[j]=ch;// Here I am assinging char values one by one to my char array's corresponding index.
j++;
}
}
}
}
请你帮我解决一下,我把它放在这里之前尝试了一切。谢谢..