三年多来我一直没有用过C,很多东西我都生锈了。 我知道这可能看起来很愚蠢,但我现在不能从函数返回一个string。 请假定:我不能使用string.h 。 这是我的代码: #include <ncurses.h> char * getStr(int length) { char word[length]; for (int i = 0; i < length; i++) { word[i] = getch(); } word[i] = '\0'; return word; } int main() { char wordd[10]; initscr(); *wordd = getStr(10); printw("The string is:\n"); printw("%s\n",*wordd); getch(); endwin(); return 0; } 我可以捕获string(用我的getStr函数),但我不能让它正确显示(我得到垃圾)。 帮助表示赞赏。
在一个库中,我有一个函数,在数据库中search一个键,并返回一个非const引用到一个对象。 我想处理找不到键的情况,这通常是由于调用函数时出现错误而导致的。 这种情况非常糟糕,程序无法继续,所以我打印一条消息来帮助发现错误并调用exit(1) 。 问题是在这种情况下永远不会执行的return语句,但必须在那里。 如果它是一个指针,我可以只return nullptr; 但有一个参考? 我应该做这样的伪代码吗? Type & get(const Key & k) { if (my_db.key_exists(k)) { return my_db.at(k); } std::cerr << k << " not found\n"; exit(1); return *(new Type(some_dummy_parameters)); } 它看起来太可怕了! 也许我应该避免这样的function。 请让我知道你的意见!
我遇到了一个问题,我似乎无法从我在Jquery中运行的asynchronousJavaScript方法获取值。 我的jquery看起来像这样: $(document).ready( function() { $('#splash_image_upload').change( function() { var file = this.files[0]; var blob_string = create_blob(file); alert(blob_string); }); 我能够访问来自'onload'事件的值,但我似乎无法返回实际值。 我试过这个:` function create_blob(file) { var reader = new FileReader(); reader.onload = (function() { return function(e) { return e.target.result; }; })(); reader.readAsDataURL(file); } 每次我执行这个函数时,'blob_str'variables的值都是'undefined',可能是因为赋值是在函数完成之前完成的。 我不太清楚如何去做这件事。 有没有一种方法,我可以从这个函数返回这个值?
我想要的是: obj = Foo.new(0) # => nil or false 这不起作用: class Foo def initialize(val) return nil if val == 0 end end 我知道在C / C ++ / Java / C#中,我们不能在构造函数中返回一个值。 但是我想知道在Ruby中是否可能。
通过阅读本论坛中已经提出的与上述主题相关的所有问题(见标题),我彻底明白finally总是被称为。 (从System.exit和无限循环除外)。 不过,我想知道是否在catch块中调用return ,然后从finally块中调用另一个return 。 例如: public static void main(String[]args) { int a = new TestClass().absorbeTheValue(); } int absorbeTheValue() { try { int a = 10/0; if (a > 0) return 4; } catch(Exception e) { return 45; } finally { return 34; } } 所以在这里输出(当调用方法的时候)在任何情况下都是34。 这意味着最后总能得到运行。 我认为其他的“回报”根本没有运行。 在许多文章中,我发现最终将内容写入已经由catch子句返回的内容。 我的理解是,只要catch语句中的返回值即将被评估,控制stream就会传递给finally语句,而finally语句又会有另一个返回语句,这次返回值将被评估,而不会将控制权交还给catch语句。 这样,在运行时调用的唯一return将是最终的返回。 你同意吗? finally的return不会将控制权交给程序,而是返回值并终止方法。 我们可以这样说吗?
在android中,大多数事件侦听器方法返回一个布尔值。 真/假值是什么意思? 它会导致后续事件? class MyTouchListener implements OnTouchListener { @Override public boolean onTouch(View v, MotionEvent event) { logView.showEvent(event); return true; } } 对于上面的例子,如果在onTouch方法中返回true,我发现每个触摸事件(DOWN,UP,MOVE等)都是根据我的logView捕获的。 相反,如果返回错误,则仅捕获DOWN事件。 所以看起来返回false将阻止事件传播。 我对么 ? 而且,在OnGestureListener中 ,许多方法也必须返回一个布尔值。 他们有相同的意思吗?
我是C的初学者,我正在自学。 我正在创build以下function: char *foo(int x){ if(x < 0){ char a[1000]; char b = "blah"; x = x – 1; char *c = foo(x); strcpy(a, b); strcat(a, c); return a; } blah … } 我基本上试图返回一个附加的string,但我得到以下错误: “错误:函数返回局部variables的地址”,有什么build议,如何解决这个问题?
我想知道是否可以做一个三元操作,但没有返回任何东西。 如果在Java中不可能,那么在其他语言中是可能的,如果是的话,哪些是适用的? name.isChecked() ? name.setChecked(true):name.setChecked(false);
这应该返回一个包含图片文件名列表的JSON对象。 评论的警报显示正确的数据,但alert(getPicsInFolder("testfolder")); 显示"error" 。 function getPicsInFolder(folder) { return_data = "error"; $.get("getpics.php?folder=" + folder, function (data) { data = jQuery.parseJSON(data); $.each(data, function (index, value) { data[index] = "folders/" + folder + "/" + value; }); //alert(data); // This alert shows the correct data, but that's hardly helpful return_data = data; }); return return_data; } 我究竟做错了什么?
是的,我已经使用了这个问题,甚至提到我的教科书(Don Gosselin的PHP),但是我认真地理解了这个解释。 从我的理解: echo =显示函数的最终结果 返回=返回一个函数的值 我在下面的函数中同时应用了echo和return ,我无法看到使用return而不是echo的“差异”或“有效性”。 <?php echo "<h1 style='font-family:Helvetica; color:red'>Using <em>echo</em></h1>"; function add1($x, $y){ $total = $x + $y; echo $total; } echo "<p>2 + 2 = ", add1(2, 2), "</p>"; echo "<h1 style='font-family:Helvetica; color:red'>Using <em>return</em></h1>"; function add2($x, $y){ $total = $x + $y; return $total; } echo "<p>2 + 2 = […]