- 分享
- 0
- 人气
- 0
- 主题
- 23
- 帖子
- 124
- UID
- 186218
- 积分
- 122
- 阅读权限
- 13
- 注册时间
- 2008-12-16
- 最后登录
- 2012-3-17
- 在线时间
- 358 小时
|
各位大大,我現在的問題是當我要delete 資料的時候我要將struct 裡面的name 刪除!但是一直出現184 incompatible types in assignment ! 請問怎樣解決
這一行 ‘ inventory.name='\0'; ’
- #include <stdio.h>
- #include "readline.h"
- #define NAME_LEN 25
- #define MAX_PARTS 100
- struct part {
- int number;
- char name[NAME_LEN+1];
- int on_hand;
- } inventory[MAX_PARTS];
- int num_parts = 0; /* number of parts currently stored */
- int find_part(int number);
- void insert(void);
- void search(void);
- void update(void);
- void delete1(void);
- void print(void);
- /**********************************************************
- * main: Prompts the user to enter an operation code, *
- * then calls a function to perform the requested *
- * action. Repeats until the user enters the *
- * command 'q'. Prints an error message if the user *
- * enters an illegal code. *
- **********************************************************/
- int main(void)
- {
- char code;
- for (;;) {
- printf("Enter operation code: ");
- scanf(" %c", &code);
- while (getchar() != '\n') /* skips to end of line */
- ;
- switch (code) {
- case 'i': insert();
- break;
- case 's': search();
- break;
- case 'u': update();
- break;
- case 'p': print();
- break;
- case 'd': delete();
- break;
- case 'q': return 0;
- default: printf("Illegal code\n");
- }
- printf("\n");
- }
- }
- /**********************************************************
- * find_part: Looks up a part number in the inventory *
- * array. Returns the array index if the part *
- * number is found; otherwise, returns -1. *
- **********************************************************/
- int find_part(int number)
- {
- int i;
- for (i = 0; i < num_parts; i++)
- if (inventory[i].number == number)
- return i;
- return -1;
- }
- /**********************************************************
- * insert: Prompts the user for information about a new *
- * part and then inserts the part into the *
- * database. Prints an error message and returns *
- * prematurely if the part already exists or the *
- * database is full. *
- **********************************************************/
- void insert(void)
- {
- int part_number;
- if (num_parts == MAX_PARTS) {
- printf("Database is full; can't add more parts.\n");
- return;
- }
- printf("Enter part number: ");
- scanf("%d", &part_number);
- if (find_part(part_number) >= 0) {
- printf("Part already exists.\n");
- return;
- }
- inventory[num_parts].number = part_number;
- printf("Enter part name: ");
- read_line(inventory[num_parts].name, NAME_LEN);
- printf("Enter quantity on hand: ");
- scanf("%d", &inventory[num_parts].on_hand);
- num_parts++;
- }
- /**********************************************************
- * search: Prompts the user to enter a part number, then *
- * looks up the part in the database. If the part *
- * exists, prints the name and quantity on hand; *
- * if not, prints an error message. *
- **********************************************************/
- void search(void)
- {
- int i, number;
- printf("Enter part number: ");
- scanf("%d", &number);
- i = find_part(number);
- if (i >= 0) {
- printf("Part name: %s\n", inventory[i].name);
- printf("Quantity on hand: %d\n", inventory[i].on_hand);
- } else
- printf("Part not found.\n");
- }
- /**********************************************************
- * update: Prompts the user to enter a part number. *
- * Prints an error message if the part doesn't *
- * exist; otherwise, prompts the user to enter *
- * change in quantity on hand and updates the *
- * database. *
- **********************************************************/
- void update(void)
- {
- int i, number, change;
- printf("Enter part number: ");
- scanf("%d", &number);
- i = find_part(number);
- if (i >= 0) {
- printf("Enter change in quantity on hand: ");
- scanf("%d", &change);
- inventory[i].on_hand += change;
- } else
- printf("Part not found.\n");
- }
- /**********************************************************
- * print: Prints a listing of all parts in the database, *
- * showing the part number, part name, and *
- * quantity on hand. Parts are printed in the *
- * order in which they were entered into the *
- * database. *
- **********************************************************/
- void print(void)
- {
- int i;
- printf("Part Number Part Name "
- "Quantity on Hand\n");
- for (i = 0; i < num_parts; i++)
- printf("%7d %-25s%11d\n", inventory[i].number,inventory[i].name, inventory[i].on_hand);
- }
- void delete1(void)
- {
- int i, number, change;
- printf("Enter part number: ");
- scanf("%d", &number);
- i = find_part(number);
-
- if (i >= 0)
- {
- inventory[i].name='\0';
- inventory[i].number=0;
- inventory[i].on_hand=0;
- num_parts--;
- }
- else
- printf("Part not found.\n");
- }
复制代码 |
|