Node* LinkRead(Node *plist)
{
FILE *in;
errno_t err;
int num;
char name[20];
int count = 0;
err = fopen_s(&in, "TextData.txt", "r");
plist = createLink();
if (err != 0)
{
printf("Error1\n");
printf("并没有本地数据,请先输入数据,使用功能1。再保存!\n");
getchar();
getchar();
return plist;
}
while (!feof(in))
{
fscanf_s(in, "%d", &num);
fscanf_s(in, "%s", name, 10);
if (feof(in))break;
if (LinkInsert(plist,num,name)==0)
{
printf("Error 3\n");
getchar();
}
count++;
}
plist->num = count;
printf("total=%d\t,Read is OK!\n", count);
getchar();
getchar();
if (in != NULL)
{
fclose(in);
}
return plist;
}
需要用到
FILE *in;
errno_t err;
err=fopen_s(&in,"Text.txt","r");
若能正确打开,则fopen返回0。
feof(in) 判断文件是否读取到了结尾.如果没到则返回0. 如果到结尾则返回1.
fscanf_s(in, "%d", &num);
fscanf_s(in, "%s", name, 10);
读取 文件指针 的内容
void LinkWrite(Node* plist)
{
FILE *out;
errno_t err;
if (plist->next == NULL)
{
printf("No No No!\n");
getchar();
getchar();
return;
}
plist = plist->next;
err = fopen_s(&out, "TextData.txt", "w");
if (err != 0)
{
printf("Error1\n");
return;
}
while (plist != NULL)
{
fprintf(out,"%d\t",plist->num);
fprintf(out, "%s\n", plist->name);
plist = plist->next;
}
printf("Write is OK!\n");
getchar();
getchar();
if(out!=NULL)
fclose(out);
}
写数据到 本地文件
fprintf(out,"%d\t",plist->num);
fprintf(out, "%s\n", plist->name);
输出数据到本地文件