我想从具有字符串 int 格式的文本文件中读取值,如下所示:
testing 5 17
charlie 12 1
delta 88 4
我有一个使用 fscanf 读取文件的函数,将输入放入一些变量中,然后将它们发送到将它们作为链表节点插入的函数:
void readFile(LinkedList *inList, char* file)
{
char* tempName;
int tempLoc, tempNum;
FILE* f;
f = fopen(file, "r");
if(f==NULL)
{
printf("Error: could not open file");
}
else
{
while (fscanf(f, "%s %d %d", tempName, &tempLoc, &tempNum) != EOF)
{
insertFirst (inList, tempName, tempLoc, tempNum);
}
}
}
insertFirst 函数:
void insertFirst(LinkedList* list, char* inName, int inLoc, int inNumMeth)
{
LinkedListNode* newNode;
newNode = (LinkedListNode*)malloc(sizeof(LinkedListNode));
newNode->className = inName;
newNode->loc = inLoc;
newNode->numMethods;
newNode->next = list->head;
list->head = newNode;
}
当我遍历链表以打印出值时,它会为名称 (�t) 提供奇怪的符号,并在因分段错误而崩溃之前为整数提供不正确的数字。我很难追查原因。