喵宅苑 MewoGarden × 技术宅社区II | Z站 Z Station 棒棒哒纯文字二次元技术社区

正文

技术问答

作者:系统
{"name":"技术问答","sizeType":1,"icon":"","order":9999}

回复

关于设计电子词典的

作者:花花1212
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define szWORD 32
#define szSTRN 224
#define szITEM sizeof(struct TItem)
char fileDict[szSTRN];
typedef struct TItem
{
char word[szWORD];
char mean[szSTRN];
} Item;
fpos_t lookup(char *word, char *mean)
{
FILE * f = 0; Item i;
int r = 0; fpos_t p = 0;
if(!word) return 0;
f = fopen(fileDict, "rb");
if (!f) return 0;
while(!feof(f))
{
fgetpos(f, &p);
r = fread(&i, szITEM, 1, f);
if(r < 1) break;
if(i.word[0] == 0) continue;
if(strcmp(i.word , word)) continue;
if(mean) strcpy(mean, i.mean );
fclose(f);
return p+1;
}
fclose(f);
return 0;
}
void append(void)
{
Item i; FILE * f = 0; fpos_t p = 0;
memset(&i, 0, szITEM);
printf("请输入单词:"); scanf("%s", i.word );
p = lookup(i.word, 0 );
if(p)
{
printf("字典内已经有该单词记录!\n");
return;
}
printf("请输入释义,按回车结束:");
fflush(stdin);
gets(i.mean );
f = fopen(fileDict, "ab");
fwrite(&i, szITEM, 1, f);
fclose(f);
printf("词条已新增\n");
}
void erase(void)
{
Item i; FILE * f = 0; fpos_t p = 0;
memset(&i, 0, szITEM);
printf("请输入单词:"); scanf("%s", i.word );
p = lookup(i.word, 0 );
if(p==0)
{
printf("字典内没有该单词记录!\n");
return;
}
p--;
memset(&i, 0, szITEM);
f = fopen(fileDict, "rb+");
fsetpos(f, &p);
fwrite(&i, szITEM, 1, f);
fclose(f);
printf("词条已删除\n");
}
void edit(void)
{
Item i; FILE * f = 0; fpos_t p = 0;
memset(&i, 0, szITEM);
printf("请输入单词:"); scanf("%s", i.word );
p = lookup(i.word, 0 );
if(p==0)
{
printf("字典内没有该单词记录!\n");
return;
}
p--;
printf("请输入释义,按回车结束(输入abort放弃修改):");
fflush(stdin);
gets(i.mean );
if(strstr(i.mean ,"abort"))
{
printf("已放弃修改!\n");
return ;
}
f = fopen(fileDict, "rb+");
fsetpos(f, &p);
fwrite(&i, szITEM, 1, f);
fclose(f);
printf("词条已保存\n");
}
void query(void)
{
Item i; fpos_t p = 0;
memset(&i, 0, szITEM);
printf("请输入单词:");
scanf("%s", i.word );
p = lookup(i.word, i.mean );
if(p==0)
{
printf("字典内没有该单词记录!\n");
return;
}
printf("【词条】%s\n【释义】%s", i.word , i.mean );
}
void set(void)
{
int cmd = 0;
printf("当前字典为%s,需要改变吗(选择yY改变)?", fileDict);
cmd = getch();
if(cmd == 'y' || cmd == 'Y')
{
printf("请输入字典文件名称(包含路径):");
scanf("%s", fileDict);
printf("设置成功!\n");
}
}
int main(int argc, char * argv[])
{
int cmd = 0;
if(argc >1)
strcpy(fileDict, argv[1]);
else
strcpy(fileDict, "c:\\dict.txt");
/*end if*/
for(;;)
{
printf("\n\
************************\n\
** 欢迎使用迷你字典!**\n\
************************\n\
** 0 - 设置字典 **\n\
** 1 - 查询词条 **\n\
** 2 - 新增词条 **\n\
** 3 - 编辑词条 **\n\
** 4 - 删除词条 **\n\
** 5 - 退出字典 **\n\
************************\n");
cmd = getch() - '0';
switch(cmd)
{
case 0: set(); break;
case 1: query(); break;
case 2: append(); break;
case 3: edit(); break;
case 4: erase(); break;
default: return 0;
}
}
return 0;
}有谁可以帮我详细的解释一下
以下是要求 (1)、采用结构体数组,每个数据的结构应当包括:单词的英文拼写,单词的中文释义。
(2)、系统功能:
a. 词条录入:即添加单词记录。
b. 信息显示:将所有的单词按字母顺序显示。
c. 词条修改:对已经输入的单词信息进行修改。
d. 词条删除:删除某个单词记录。
e. 单词查询: 输入单词英文拼写,输出该单词的中文释义。
f. 信息保存:将单词信息保存到文件。
g. 退出系统
查看回复

之前有安装过百度云管家在U盘上.后来把哪个

作者:hahahggg
之前有安装过百度云管家在U盘上.后来把哪个盘给格式化了之后就留下了其他里面那个,现在就成这样了 求助
查看回复

编程小小白

作者:张三
又至一年开学季#km在下不得不厚着脸皮来求资源了,请问有什么比较适合自学的C++视频教学#pm最好有链接#28m 或者直接学Java你们觉得我期末C++能过吗?#31t
查看回复

蓝牙耳机能不能写入代码以让其自动关机?

作者:李小粹
[i=s] 本帖最后由 李小粹 于 2016-2-20 19:58 编辑 [postbg]3.jpg[/postbg][flash=230,25]http://www.xiami.com/widget/115837048_1772495177/singlePlayer.swf[/flash] 我有个蓝牙耳机,是用USB接口充电的,但是它不会自动关机。 能不能自己写入一段代码让它待机一段时间后就自己关机?
查看回复

怎么解决

作者:小皮球
[attach]446471[/attach]怎么解决
查看回复

.h文件和.cpp文件的设置问题

作者:笠雨聆月
本弱弱用的比较多的是codeblocks,现get一个略大的程序包,求助如何在codeblocks里设置路径使其正确链接QWQ(具体就是在main里设置了include “include/XX.h”,然后此XX.h中的函数被scr/X.cpp解释[没错,两个文件名字不一样],如何才能编译的时候自动使用cpp里解释的函数,我把他们都放在同一个文件夹里也没有用。) 之前一直是利用codeblocks里的添加class或者就一个.h文件既包含文件的声名又包括解释做的,所以现在简直完全不知所措QWQ
查看回复

进程间使用D-bus通信时发生段错误

作者:樱花流逝
[i=s] 本帖最后由 樱花流逝 于 2016-1-26 22:41 编辑 代码是这样的 [mw_shl_code=c,true]#include<stdio.h> #include<glib.h> #include<dbus/dbus-glib-lowlevel.h> static gboolean send_ding(DBusConnection *bus); int main(){ GMainLoop* loop; DBusConnection *bus; DBusError error; loop=g_main_loop_new(NULL,FALSE); dbus_error_init(&error); bus=dbus_bus_get(DBUS_BUS_SESSION,&error); if(!bus){ g_warning("connecting failure to D-bus: %s",error.message); dbus_error_free(&error); return 1; } dbus_connection_setup_with_g_main(bus,NULL); g_timeout_add(1000,(GSourceFunc)send_ding,bus); g_main_loop_run(loop); return 0; } static gboolean send_ding(DBusConnection *bus){ DBusMessage *message; message=dbus_message_new_signal("/com/burtonini/dbus/ding", "com.burtonini.dbus.Signal", "ding"); dbus_message_append_args(message, DBUS_TYPE_STRING,"ding!", DBUS_TYPE_INVALID); dbus_connection_send(bus,message,NULL); dbus_message_unref(message); g_print("ding!\n"); return 0; }[/mw_shl_code] 编译命令是这样的 gcc `pkg-config --cflags --libs dbus-glib-1` -g -o send dbus-ding-send.c 但是运行时终端显示“段错误”并直接退出了 用gdb调试时结果是这样的 [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Program received signal SIGSEGV, Segmentation fault. strlen () at ../sysdeps/x86_64/strlen.S:106 106 ../sysdeps/x86_64/strlen.S:没有那个文件或目录 然而还是不知道错在哪orz 求解答
查看回复

BISS0001芯片问题,或者有人有嵌入式开发群求介绍

作者:Soultraveler
BISS0001调节输出延时和封锁延时的电容电阻值对应的时间关系。资料虽然有写,但不太详细,个人没有看太懂,测量的时候输出延时始终保持10S左右,希望调节的更低点,望大神解答
查看回复
上一页
下一页
0%
站点地图友情链接:
喵宅苑
喵空间社区程序
喵宅苑 静态版
宅喵RPG地图编辑器
络合兔
Lanzainc
技术宅
小五四博客
莉可POI
Mithril.js
枫の主题社
Project1
午后少年
机智库
七濑胡桃
xiuno
幻想の日常
魂研社
Nothentai
0xffff
欲望之花
泽泽社长
淀粉月刊
HAYOU