大家好.我正在为学校做一个项目,我需要通过多个函数通过引用传递一些参数.我理解如何通过引用将变量声明的位置传递给另一个函数,如下所示:
main() {
int x = 0;
int y = 0;
int z = 0;
foo_function(&x, &y, &z);
}
int foo_function(int* x, int* y, int* z) {
*x = *y * *z;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是,如何将foo函数中的x,y和z传递给另一个函数?像这样的东西给了我各种编译器警告.
int foo_function(int* x, int* y, int* z) {
*x = *y * *z;
bar(&x, &y, &z);
return 0;
}
int bar(int* x, int* y, int* z) {
//some stuff
}
Run Code Online (Sandbox Code Playgroud) 我正在编写一个只做一件事的小应用程序:获取一些用户提供的数据,对其进行一些分析,并返回该数据的"标记".我想客户应该GET或者POST他们的要求/getTag,以便得到回复.
当客户端执行此操作时,服务器上不存储任何内容,因此使用POST会感觉很奇怪.但是,分析中也没有统一的URI,因此使用GET会感觉很奇怪,因为它会根据提供的数据返回不同的内容.
使用REST表示此功能的最佳方法是什么?
我正在为IT类开发一个项目,我需要在php页面中传递查询字符串的值,并将其读入ASP页面上的隐藏字段.
我目前正在将参数从php页面传递给ASP,但我对.NET一般都是新手.如何从字符串中获取数据并将其转换为C#中的变量?例如,如果网址是blah.com/upload?username=washington,我将如何获得"华盛顿"并将其保存到隐藏字段中?万分感谢.
Jergason
编辑
我知道这很容易.万分感谢.我已经在C字符串数组中读了几行文本.这些行有任意数量的制表符或空格分隔的列,我试图弄清楚如何删除它们之间的所有额外空格.最终目标是使用strtok来分解列.这是列的一个很好的例子:
Cartwright Wendy 93 Williamson Mark 81 Thompson Mark 100 Anderson John 76 Turner Dennis 56
如何消除列之间的所有空格或制表符,以便输出看起来像这样?
Cartwright Wendy 93
或者,我可以用不同的字符替换列之间的所有空格,以便使用strtok吗?像这样的东西?
Cartwright#Wendy#93
编辑:多个很棒的答案,但必须选择一个.谢谢大家的帮助.
我刚刚使用eventmachine 启动了薄与雨之间的异步sinatra基准测试.
有人可以解释为什么Thin比使用eventmachine和四个work_processes的Rainbows更快?我也尝试了一个work_processes但结果没有改变.瘦还是更快.
提前感谢Francesco
我正在 Mac OS X 10.6 上尝试一些 python 网络编程。我正在使用 Homebrew 安装的 Python 2.7,并试图从包含 UDP 客户端和服务器的Python 网络编程基础(顺便说一句好书)运行一个简单的脚本,但是在尝试使用来自插座模块。脚本如下:
#! /usr/bin/env python
import socket, sys
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
MAX = 65535
PORT = 1060
if sys.argv[1:] == ['server']:
s.bind(('127.0.0.1', PORT))
print('Listening at', s.getsockname())
while True:
data, address = s.recvfrom(MAX)
print('The client at ', address, ' says ', repr(data))
s.sendto('Your data was %d bytes' % len(data), address)
elif sys.argv[1:] == ['client']:
print('address before sending: ', s.getsockname())
s.sendto('This is my message', ('127.0.0.1', PORT)) …Run Code Online (Sandbox Code Playgroud) 我试图在Excel电子表格中输出几段文本,但是现在文本被截断以仅显示255个字符.代码非常简单:
$xls =& new Spreadsheet_Excel_Writer();
$sheet =& $xls->addWorksheet($name);
foreach ($rec as $field) {
$rec = ($rec['data'] ? $rec['data'] : $rec);
$sheet->write($row, $col++, $field);
}
Run Code Online (Sandbox Code Playgroud)
我能做些什么来获取所有文本,而不仅仅是255个字符?
在这里,我想我知道如何在Perl中使用列表,当发生这种情况时.如果我这样做(调试代码,不包括漂亮):
#! /usr/bin/perl -w
use strict;
my $temp1 = "FOOBAR";
my $temp2 = "BARFOO!";
my @list = { $temp1, $temp2 };
print $temp1; #this works fine
print $list[0]; #this prints out HASH(0x100a2d018)
Run Code Online (Sandbox Code Playgroud)
看起来我打印出第二个字符串的地址.如何获取列表中存储的实际字符串?我认为它与引用有关,但肯定不知道.
我正在使用Cocoa Programming For Mac OS X(一本好书).本书给出的一个练习是构建一个简单的待办事项.UI具有表格视图,用于键入新项目的文本字段以及用于将新项目添加到表格的"添加"按钮.
在后端我有一个控制器,它是我的NSTableView的数据源和委托.控制器还实现了由"添加"按钮调用的IBAction方法.它包含一个NSMutableArray来保存待办事项列表项.单击该按钮时,操作方法将正确触发,新字符串将添加到可变数组中.但是,我的数据源方法未正确调用.他们在这里:
- (NSInteger)numberOfRowsInTableView:(NSTableView*)aTableView {NSLog(@"Calling numberOfRowsInTableView:%d",[todoList count]); return [todoList count]; }- (id)tableView:(NSTableView *)aTableView
objectValueForTableColumn:(NSTableColumn *)aTableColumn
row:(NSInteger)rowIndex {
NSLog(@"Returning %@ to be displayed", [todoList objectAtIndex:rowIndex]);
return [todoList objectAtIndex:rowIndex];
}
Run Code Online (Sandbox Code Playgroud)
这是擦.-numberOfRowsInTableView仅在应用程序首次启动时调用,而不是每次我向数组添加新内容时调用.-objectValueForTableColumn永远不会被召唤.我认为这是因为Cocoa非常聪明,在没有任何东西可以绘制的时候不会调用这个方法.我需要调用一些方法让表视图知道它的数据源已经改变了,它应该重绘自己吗?
我知道我做错了,但我无法弄清楚如何组织这个makefile.我定义了我的util源文件,并使用一些函数来定义它们的.o文件:
UTIL_SRC = utils/src/foo.cpp utils/src/bar.cpp utils/src/baz.cpp
UTIL_OBJS = $(patsubst utils/src/%.cpp,utils/obj/%.o,$(UTIL_SRC))
Run Code Online (Sandbox Code Playgroud)
这是我使用这些文件的目标:
lib : lib/libutils.a
lib/libutils.a : $(UTIL_OBJS)
rm -f lib/libutils.a
ar -c -q lib/libutils.a $(UTIL_OBJS)
Run Code Online (Sandbox Code Playgroud)
然后,当我得到编译这些婴儿的规则时,我希望只有一个命令可以遍历每个UTIL_OBJS文件和每个UTIL_SRC文件.相反,我采用了这种怪物,这使得将它们存储在变量中的目的就失败了.
$(UTIL_OBJS) : $(UTIL_SRC)
g++ $(UTIL_FLAGS) utils/src/foo.cpp -o utils/obj/foo.o
g++ $(UTIL_FLAGS) utils/src/bar.cpp -o utils/obj/bar.o
g++ $(UTIL_FLAGS) utils/src/baz.cpp -o utils/obj/baz.o
Run Code Online (Sandbox Code Playgroud)
我可以将它浓缩为一行吗?怎么样?谢谢,很棒!
我有一个URL类,它重载了==,<,>和!=运算符以进行简单比较.URL类具有字符串数据成员和一些作用于字符串的函数.使用URL类测试时,运算符可以正常工作.
我还有一个具有URL数据成员的Page类.我试图在Page类中重载相同的运算符.Page类中的相等性基于各自URL的相等性,因此我在比较页面时使用URL类布尔运算符.这会产生一些我无法弄清楚的编译器错误.URL运算符的代码:
bool URL::operator ==(URL & u) const {
//url is the string instance variable
return url == u.GetURL();
}
Run Code Online (Sandbox Code Playgroud)
页面操作符代码:
bool Page::operator ==(Page & p) const {
//url is the URL instance variable of the Page class
return url == p.GetURL();
}
Run Code Online (Sandbox Code Playgroud)
这会产生如下错误:
src/Page.cpp: In member function ‘bool Page::operator==(Page&) const’:
src/Page.cpp:21: error: no match for ‘operator==’ in ‘((const Page*)this)->Page::url == Page::GetURL()()’
inc/URL.h:118: note: candidates are: bool URL::operator==(URL&) const
Run Code Online (Sandbox Code Playgroud)
我预测,我忘记这是愚蠢的事情.你能证明我是对的吗?
编辑: Const正确性让我陷入了困境.谢谢您的帮助.
我的印象是他们是同一件事.然而,我认为他们在这里被区别对待.我感到困惑的部分看起来像这样.
Foo* initFoo(char* name);
int main
{
Foo* foo;
char* player_name[25];
scanf("%s", player_name);
foo = initFoo(player_name);
}
Foo* initFoo(char* name)
{
printf("\n%s", name);
}
Run Code Online (Sandbox Code Playgroud)
字符串打印出来很好.但是,我得到一个编译器警告说:从不兼容的指针类型传递'initFoo'的参数1.我对指针缺少什么?
c ×3
c++ ×2
macos ×2
pointers ×2
string ×2
asp.net ×1
asynchronous ×1
c# ×1
cocoa ×1
compilation ×1
eventmachine ×1
homebrew ×1
list ×1
makefile ×1
nstableview ×1
perl ×1
php ×1
python ×1
query-string ×1
reference ×1
rest ×1
ruby ×1
sinatra ×1
sockets ×1
thin ×1
udp ×1
whitespace ×1