嗨,由于我的大学项目,我正在做一个基于线性单链表的C数据库程序 . 我不理解的问题是输入和输出程序 .
基本上,程序的输入应该是这样的
INSERT
001 // indicates patient's number
John // indicates patient's name
M // indicates patient's gender
#
002
Mary
F
#
SELECT // which means print the list
* // indicates all the list to be print
#
EXIT
输入完成,以下行是输出
Data is added.
#
Hospital ID : 001
Name : John
Gender : M
#
Hospital ID : 002
Name : Mary
Gender : F
#
就这样 . 这是我一直在做的(在描述中)
-
获取命令的第一行
-
然后执行while命令不退出而不是char中的#符号,我检查命令是否"INSERT or " SELECT“使用strcmp,如果它等于那么
-
下一行是获取在linkedlist命令中使用的输入,其中我在int中给出一个标志,如果命令是插入它将要求3次,或者如果它是带有strcmp的char符号中的*它将是删除所有
-
所以基本上它重复(标记)次以询问输入线(使用获取)它将再次请求命令(忘记在char [size]之前提及),如果输入#
-
所以要按顺序打印命令,我将它们排入队列中以进行打印输出
-
直到输入EXIT,它保持入队,否则它将出队直到队列为NULL(将队列放在char temp中)
但是整个算法似乎不起作用,因为程序只能正确地用于INSERT功能 .
然后我回到我的C书并阅读有关宏,参数等的内容并研究互联网,直到我发现将#self定义为要求更多命令的命令的想法
但似乎并不完全理解这件事是如何运作的 . 任何想法我应该做什么来获得正确的输入和输出?使用这种strcmp时,如果,或定义#本身?
谢谢你提前,任何帮助真的很感激 .
1 回答
除非您编写了程序,否则标签
#
在程序输入中没有意义 .预处理指令(如
#include
或#define
)的主题标签是有意义的 in a C source code file (或C头文件) . 您的所有程序都是输入字符,而不是命令 .