0

嗨,由于我的大学项目,我正在做一个基于线性单链表的 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中的#符号,我使用strcmp检查命令是“INSERT”还是“SELECT”,如果它等于
  • 下一行是在linkedlist命令中使用的输入的gets,我在int中给出一个标志,如果命令是insert,它将要求3次,或者SELECT如果它是带有strcmp的* in char符号,它将删除所有
  • 所以基本上在它重复(标志)次要求输入行(使用gets)之后,它会再次要求命令(忘了在那个char [size]之前提到),如果输入#
  • 所以为了打印命令,我将它们排入我的队列以打印输出
  • 直到输入 EXIT ,它保持入队,否则它将出队直到队列为 NULL (将队列放在 char temp 的前面)

但是整个算法似乎不起作用,因为该程序仅适用于 INSERT 函数。

然后我将回到我的 C 书并阅读有关宏、参数等的内容并研究互联网,直到我发现将 # 本身定义为请求更多命令的命令的想法

但似乎不太明白这件事是如何运作的。知道我应该怎么做才能获得正确的输入和输出吗?使用这种 strcmp while 和 if 还是定义 # 本身?

在此先感谢您,任何帮助将不胜感激。

4

1 回答 1

0

#除非您为此编写程序,否则主题标签在程序的输入中没有意义。

用于预处理指令的标签,如#include在 C 源代码文件(或 C 头文件)中#define是有意义的。作为输入的所有程序都是字符,而不是命令。

于 2012-04-20T09:01:16.027 回答