for i in $(ls);do
if [ $i = '*.java' ];then
echo "I do something with the file $i"
fi
done
Run Code Online (Sandbox Code Playgroud)
我想遍历当前文件夹中的每个文件,并检查它是否与特定扩展名匹配.上面的代码不起作用,你知道为什么吗?
假设我在寄存器中有一个整数,我该如何打印?你能展示一个简单的示例代码吗?
我已经知道如何打印一个字符串,如"你好,世界".
我正在Linux上开发.
iOS有CADisplayLink,在Mac OS X中有CVDisplayLink,但我找不到使用它的方法,所有的例子都与OpenGL有关.
我创建了这个自定义UIView,我想将它转换为NSView
#import "StarView.h"
#import <QuartzCore/QuartzCore.h>
#define MAX_FPS (100.0)
#define MIN_FPS (MAX_FPS/40.0)
#define FRAME_TIME (1.0 / MAX_FPS)
#define MAX_CPF (MAX_FPS / MIN_FPS)
#define aEPS (0.0001f)
@implementation StarView
@synthesize starImage = _starImage;
@synthesize x, y;
- (void)baseInit {
_starImage = nil;
CADisplayLink *displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(runLoop)];
[displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
}
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self baseInit];
}
return self;
}
- (id)initWithCoder:(NSCoder *)aDecoder {
if ((self = [super initWithCoder:aDecoder])) {
[self …Run Code Online (Sandbox Code Playgroud) 我肯定知道
function(int *a); function(int a[]);
Run Code Online (Sandbox Code Playgroud)
在C中是相同的,函数(int a [])将被转换为函数(int*a)
int *a = malloc(20);
int b[] = {1,2,3,4,5};
Run Code Online (Sandbox Code Playgroud)
这两个不一样,第一个是指针,第二个是数组.当我调用函数(b)时会发生什么?(函数(int*a))我知道b在堆栈上,那么如何传递给该函数?
其次,字符串:
char *c1 = "string";
char c2 [] = "string";
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我不知道c1在哪里,我想c2在堆栈上.假设函数现在是:function(char*c),它与函数(char c [])相同,当我调用函数(c1)和函数(c2)时会发生什么,字符串将通过引用传递或值?
这是我不理解的代码,它只是反转一个字符串.
#include <stdio.h>
void strrev(char *p)
{
char *q = p;
while(q && *q) ++q;
for(--q; p < q; ++p, --q)
*p = *p ^ *q,
*q = *p ^ *q,
*p = *p ^ *q;
}
int main(int argc, char **argv)
{
do {
printf("%s ", argv[argc-1]); strrev(argv[argc-1]);
printf("%s\n", argv[argc-1]);
} while(--argc);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我不理解的唯一一段代码就是这一段:while(q && *q) ++q;它用于查找eos.是不是一样while(*q) ++q;,因为q永远不会是0?代码的作者如何确定q或*q将会是0?
此代码来自这个问题:如何在C或C++中反转字符串?
我有一个NSArray,我想找到一个元素的最后一个出现.例如:
[apple, oranges, pears, apple, bananas];
int i = lastIndexOf("apple");
out: i == 3;
Run Code Online (Sandbox Code Playgroud)
我很难找到一个看APIS的简单解决方案,但是没有例子,所以很难理解我应该使用哪个函数.
我有一个JFrame和,里面JFrame有两个JPanels.当我按下一个键时,他们都必须听这个关键事件并采取行动.我想拍摄所有的键盘事件,并将它们传递给两个JPanel.你知道怎么做吗?
编辑:因为他们必须做不同的事情,我需要两个不同的听众,抱歉没有具体.
Edit2:我制作了一个简单的代码来向您展示问题.当我按下向上键时,JPanel显示的两个必须改变它们的字符串; 在这段代码中,其中只有一个实际上有所反应
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import javax.swing.AbstractAction;
import javax.swing.ActionMap;
import javax.swing.InputMap;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.KeyStroke;
/**
*
* @author antonioruffolo
*/
public class TwoPanelsTest extends JFrame {
public TwoPanelsTest() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(false);
setSize(800, 600);
PanelTest panelTest1= new PanelTest();
PanelTest panelTest2= new PanelTest();
GridBagLayout layout= new GridBagLayout();
this.setLayout(layout);
GridBagConstraints c = new GridBagConstraints();
c.ipadx …Run Code Online (Sandbox Code Playgroud) 这是代码:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void reverse(char *c){
int len = strlen(c);
char tmp;
int i;
for(i = 0; i < len; i++){
tmp = c[len-1-i];
c[len-1-i] = c[i];
c[i] = tmp;
}
}
int main(){
char *s = "antonio";
//printf("%zd\n", strlen(s));
reverse(s);
printf("%s\n", s);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
问题是反向(char*c),它需要一个字符串广告反转它,但我不明白它出错的地方.
我不止一次地读过Cocoa中使用的委托模式是Adaptern模式的实现(http://en.wikipedia.org/wiki/Adapter_pattern).它们共享相同的意图,即:让两个具有不兼容接口的对象相互协作.委托对象是适配器,因为它采用客户端所需的协议,需要协议并且对委托具有弱引用的类是客户端(因此,这将是Cocoa框架的一个类).我的问题是:谁是适应者?委托模式并没有包围任何对象,从我所看到的,谁是需要调整的对象?
这是我制作的代码:
public static boolean isOperator(char op){
if (op == '+' || op == '-'
|| op == '*' || op == '/'
|| op == '^'
|| op == '(' || op == ')'){
return true;
}
return false;
}
public static boolean isOperand(char op){
String numbers = "0123456789.";
int a = numbers.indexOf(op);
return a >= 0;
}
public static void main(String []args){
String exp= "15+20+(3.84*25)*(78/3.8)";
LinkedList a = new LinkedList();
for (int i = 0; i < exp.length(); i++){ …Run Code Online (Sandbox Code Playgroud)