我在学习C艰难的方式练习时遇到了麻烦.该练习提供了一个简单的数据库程序,它具有固定的大小和行数.您可以在下面看到构成数据库的结构.
#define MAX_DATA 512
#define MAX_ROWS 100
struct Address {
int id;
int set;
char name[MAX_DATA];
char email[MAX_DATA];
};
struct Database {
struct Address rows[MAX_ROWS];
};
struct Connection {
FILE *file;
struct Database *db;
};
Run Code Online (Sandbox Code Playgroud)
任务是更改代码以接受MAX_DATA的参数,MAX_ROWS将它们存储在数据库结构中,并将其写入文件,从而创建一个可以任意调整大小的数据库.
我理解如何接受来自用户的MAX_DATA和MAX_ROWS,作为命令行参数 - 在文件中定义的较低的函数中.一旦我有了这些值,我不知道如何将它们存储在数据库结构中并写入文件.
感谢任何能够提供帮助的人.您可以在此处找到其余代码:http://c.learncodethehardway.org/book/ex17.html
我想在我正在处理的Rails应用程序中实现树菜单(树菜单的简单示例).我不确定是否使用acts_as_tree或Ancestry.似乎使用acts_as_tree实现一个简单的树菜单会更容易,但是,Ancestry更受欢迎并且定期维护.有没有人对此有任何想法?
我写了以下函数,它接受一个变量input_name.然后,用户输入一些分配给的值input_name.我想知道input_name在函数外部访问的最佳方法.我知道在函数内部将变量定义为全局变量意味着可以在函数外部使用它.但是,在这种情况下,变量实际上是函数的一个参数,所以我不确定如何将它定义为全局变量.感谢您对此有任何帮助,请在下面找到相关代码:
def input(input_name, prompt):
while True:
data = raw_input(prompt)
if data:
try:
input_name = int(data)
except ValueError:
print 'Invalid input...'
else:
if input_name >= 0 and input_name < 100:
print 'Congratulations'
break
input_name = 'Please try again: '
else:
print 'Goodbye!'
break
month = 0
day = 0
year = 0
century = 0
input(month, "Please enter the month (from 1-12, where March is 1 and February is 12): ")
input(day, "Please enter the …Run Code Online (Sandbox Code Playgroud) 我在php-mode.el上使用Emacs:http://php-mode.sourceforge.net/php-mode.el.html
我的.emacs文件中有以下几行:
(load-file "~/.emacs.d/php-mode.el")
(require 'php-mode)
(setq c-default-style "linux" c-basic-offset 4)
Run Code Online (Sandbox Code Playgroud)
它在大多数情况下都非常好用.问题是对于某些代码位,Emacs以不同的方式显示代码与其他编辑器.例如,我在Emacs中有以下代码:
public function showStuff($items, $Stuff) {
$restrict = true;
$stuff = false;
$moreStuff = true;
if (($restrict && $stuff >= $moreStuff)
|| ( $moreStuff > 10)) {
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
但是在Eclipse/Sublime Text/Text Wrangler中查看相同的文件看起来像:
public function showStuff($items, $Stuff) {
$restrict = true;
$stuff = false;
$moreStuff = true;
if (($restrict && $stuff >= $moreStuff)
|| ( $moreStuff > 10)) {
return true;
}
return false; …Run Code Online (Sandbox Code Playgroud) 在这里完成Clojure新手,所以我可能错过了关于clojure工作方式的基本信息,但我不理解Clojure评估函数的方式.
(defn get-output []
(print "Enter: Width <RTN> Height <RTN> Price <RTN> Shape <RTN>")
(print (calculate (read-string (read-line))))
Run Code Online (Sandbox Code Playgroud)
我习惯了像Ruby或C这样的语言,在那里评估第一个打印函数,将字符串打印到终端.然后将评估第二个打印功能,提示用户输入.
然而,实际发生的是终端首先提示用户输入并在之后打印"输入:宽度高度价格形状".最后,程序输出来自的返回值calculate.
为什么这些打印语句没有像我预期的那样执行?
我正在学习C而且我想知道为什么下面的代码没有崩溃,我只使用Valgrind来解决问题.
void push(char *element){
FILE *file = fopen("stack.db", "w");
int rc = fwrite(element, sizeof(element), 1, file);
if (file) fclose(file);
}
void top() {
char *top_element = malloc(sizeof(char));
FILE *file = fopen("stack.db", "r+");
int rc = fread(top_element, sizeof(char), 1, file);
printf("Top element: %s", top_element);
}
int main(int argc, char *argv[]) {
char action = argv[1][0];
switch (action) {
case 'p':
printf("pushing element to stack\n");
push(argv[2]);
break;
case 't':
top();
break;
default:
printf("die\n");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
首先,我调用push()并写入argv[2]该文件.然后我打电话 …
c ×2
acts-as-tree ×1
clojure ×1
coding-style ×1
database ×1
emacs ×1
function ×1
gem ×1
heap-memory ×1
indentation ×1
malloc ×1
memory ×1
php ×1
python ×1
struct ×1
valgrind ×1