私のプログラムは、入力データ ファイルの一部しか読み取っていないようです
これは私のコードです:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include "BST_ADT.h"
// Structure
typedef struct
{
char* name;
char* market;
char* initial;
float stock;
}COMPANY;
// Prototype Delarations
void addComp (BST_TREE* list);
void deleteComp (BST_TREE* list);
void findStu (BST_TREE* list);
void printList (BST_TREE* list);
int compareStu (void* stu1, void* stu2);
void processStu (void* dataPtr);
int main (void)
{
// Local Definitions
BST_TREE* list;
// Statements
list = BST_Create(compareStu);
addComp(list);
deleteComp(list);
findStu (list);
printList(list);
return 0;
}
/*===================== addComp =========================*/
void addComp (BST_TREE* list)
{
// Local Declarations
COMPANY* stuPtr;
FILE* fp;
char fileName[25];
char buffer [100];
// Statements
stuPtr = (COMPANY*)malloc (sizeof (COMPANY));
stuPtr->name = (char*) malloc(128 * sizeof(char));
stuPtr->market = (char*) malloc(128 * sizeof(char));
stuPtr->initial = (char*) malloc(128 * sizeof(char));
printf("Enter the file name: ");
gets(fileName);
fp = fopen(fileName, "r");
if(fp == NULL)
{
printf("Error cannot open the file!\n");
exit(101);
}
while(fgets(buffer, 100, fp) != NULL)
{
if (!stuPtr)
printf("MEmory overflow!\n"), exit(101);
sscanf(buffer, "%s %s %s %f ", stuPtr->name, stuPtr->market, stuPtr->initial, &(stuPtr->stock));
BST_Insert(list, stuPtr);
} // end while
} //addStu
/*===================== deleteComp =========================*/
void deleteComp (BST_TREE* list)
{
// local definitions
char name[100];
char* namePtr = (char*) malloc(128 * sizeof(char));
namePtr = name;
// statements
printf("Enter Company name: ");
scanf ("%39s", namePtr);
if (!BST_Delete (list, namePtr))
printf("ERROR: No Company: %0\n", *namePtr);
} // deleteStu
これはテキストファイルからの私の入力データです:
Target Corporation; NYSE TGT 44.14B
PriceSmart, Inc.; NASDAQ PSMT 721.96M
Eastman Kodak Company; NYSE EK 5.14B
Concord Camera Corp.; NASDAQ LENS 25.43M
Siemens AG (ADR); NYSE SI 123.13B
3M Company; NYSE MMM 56.47B
Toshiba Corporation; OTC TOSBF 24.43B
Tyco International Ltd.; NYSE TYC 19.91B
Textron Inc.; NYSE TXT 13.90B
PHH Corporation; NYSE PHH 1.11B
Activision, Inc.; NASDAQ ATVI 8.07B
The Walt Disney Company; NYSE DIS 61.27B
addComp 関数の最後に
name contain 'The'
market contain 'Walt
initial contain 'Disney
and stock contain 6.09
これは、関数が意図したことではありません
代わりに、この関数が正しく行われた場合:
name should contain 'The Walt Disney Company'
market contain 'NYSE'
initial contain 'DIS'
and stock contain '61.27B
'
addComp 関数で何が間違っていましたか? これらのデータを二分木に読み込むためにトークンを使用する必要がありましたか?
助けてくれてありがとう