用c语言对文件读取,并使用链表,和顺序表进行存储,操作

简介:

有一些,经典的对文件的操作。

  fin = fopen ( argv[1], "rt" );//获取文件的指针

    if ( fin == NULL )//判断是否为空

    {

        fprintf ( stderr, "Cannot open/find %s\n", argv[2] );

        exit ( EXIT_FAILURE );

    }


    /* Create and initialize the linked list to empty */

    CreateList();

    /*--- main loop ---*/

    while ( ! feof ( fin ))//判读文件是否读完

    {

        /* read a record consisting of a line of text */

        if ( fgets ( buffer, 127, fin ) == NULL )

            break;

char *p;

char *name;

char* a;

p = strtok(buffer, " ,");//截取字符串,成一段一段的

strcpy(n->StuId, p);//将一个字符串指针的内容存储到一个字符数组中

name = strtok(NULL, " ,");

strcpy(n->Name, name);

a = strtok(NULL, " ,");

n->age = atoi(a);//转换字符型为整形


n->Next = NULL;///你个傻逼,你不看看到底实际空间是谁的。!!!!!这个一定要设置,否则判断最后是否为空没法判断!!!


printf("===============================\n");

printf("%20s,%10s,%d\n",n->StuId, n->Name, n->age);

printf("===============================\n");

        /* add the node to the list */

        if ( AddNodeAscend ( n ) == 0 ) //如果没加上这个节点。

        {

            fprintf ( stderr, "Error adding node. Aborting\n" );

            exit ( EXIT_FAILURE );

        }


    }



while (scanf("%s", cmd) != EOF){

if (cmd[0] == 'H' || cmd[0] == 'h')

{

printf("例如:\n  查找第一个结点:P0\n  删除第一个节点:D0\n  在位置一处插入节点:I1 SA17225130 马云 34 退出程序:q|Q\n\n");

}

else if (cmd[0] == 'P'){

int n = atoi(strdup(cmd + 1));//将cmd[1]以及后面所有字符串提取出来转成整形

ShowOneNode(n++);//展示需要的那个结点

}



本文转自 神迹难觅 51CTO博客,原文链接:http://blog.51cto.com/ji123/1975538,如需转载请自行联系原作者

相关文章
|
9天前
|
Linux C语言
C语言获取文件长度
C语言获取文件长度
|
12天前
|
C语言
对链表使用插入排序的C语言实现示例
对链表使用插入排序的C语言实现示例
|
24天前
|
安全 算法 程序员
【C/C++ 文件操作】深入理解C语言中的文件锁定机制
【C/C++ 文件操作】深入理解C语言中的文件锁定机制
31 0
|
1月前
|
C语言
C语言对文件的输入输出
C语言对文件的输入输出
17 0
|
1月前
|
Linux C语言
Linux系统下C语言的队列操作
Linux系统下C语言的队列操作
23 0
|
21天前
|
存储 编译器 程序员
【C语言】整形数据和浮点型数据在内存中的存储
【C语言】整形数据和浮点型数据在内存中的存储
13 0
|
29天前
|
存储 C语言 索引
在C语言中静态链表
在C语言中静态链表
17 1
|
29天前
|
存储 算法 C语言
在C语言中的动态链表
在C语言中的动态链表
9 0
|
29天前
|
前端开发 C语言
c语言中的链表
c语言中的链表
8 1
|
29天前
|
存储 C语言
C语言结构体操作
C语言结构体操作
14 0