小编MrH*_*hma的帖子

使用scanf()读取的字符串大小不超过

编辑:对于我的班级,我必须使用scanf.所以推荐其他输入方式不是我正在寻找的解决方案(如果有一个涉及scanf).


如果我正在读取小项目的用户输入(例如,游戏).让我们说我会问would you like to play? 这会接受yesno回答.所以我写了一些像这样的简单代码:

#include <stdio.h>

int main(void)
{
     char string[3]; //The max number of letters for "yes".

     printf("Would you like to play?");
     scanf("%s", string);
}
Run Code Online (Sandbox Code Playgroud)

所以这段代码应该简单地要求他们输入yesno.我正在设定我char array的大小3.这样它足够大yes,也可以no.但是如果有人要输入无效的输入,比如yesss,我知道如何比较字符串以后处理这样的事件,但是这不会在技术上/可能覆盖我声明的其他局部变量,因为它会扩展到我的数组长度之外?如果是这样,有没有办法处理这个限制3个输入字符或什么?如果没有,为什么/如何知道只输入3的大小?

*注意:我是C的新手,我找不到这个,所以即使这很简单,我也很感激.因为我显然缺少一些东西.我来自java背景,这甚至都不是问题.

c string scanf format-specifiers

31
推荐指数
4
解决办法
4万
查看次数

iPhone在UITextField touch上显示日期选择器

我按照这个帖子:datepicker点击文本字段

我导入了以下两种协议:

@interface ViewController : UIViewController<UIActionSheetDelegate, UITextFieldDelegate> {
Run Code Online (Sandbox Code Playgroud)

然后,在实现中,我使用以下内容:

- (void)viewDidLoad {

    textField.delegate = self;

[super viewDidLoad] }
Run Code Online (Sandbox Code Playgroud)

最后,我将实际代码显示日期选择器(来自线程).我也把它全部联系在IB中.

    //Date Picker
- (void)textFieldDidBeginEditing:(UITextField *)aTextField{    
    [aTextField resignFirstResponder];  

    pickerViewPopup = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];  

    UIDatePicker *pickerView = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 44, 0, 0)];  
    pickerView.datePickerMode = UIDatePickerModeDate;  
    pickerView.hidden = NO;  
    pickerView.date = [NSDate date];  

    UIToolbar *pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];  
    pickerToolbar.barStyle = UIBarStyleBlackOpaque;  
    [pickerToolbar sizeToFit];  

    NSMutableArray *barItems = [[NSMutableArray alloc] init];  

    UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] …
Run Code Online (Sandbox Code Playgroud)

iphone protocols datepicker uitextfield

24
推荐指数
3
解决办法
6万
查看次数

Lua Semicolon公约

我想知道在Lua中是否存在使用分号的一般惯例,如果是,我应该在哪里/为什么使用它们?我来自编程背景,因此用分号结束语句似乎直观正确.然而,我担心为什么它们"optional"在其普遍接受的分号结束其他编程语言的语句时.也许有一些好处?

例如:从lua编程指南中,这些都是可接受的,等效的,语法准确的:

a = 1
b = a*2

a = 1;
b = a*2;

a = 1 ; b = a*2

a = 1   b = a*2    -- ugly, but valid
Run Code Online (Sandbox Code Playgroud)

作者还提到: Usually, I use semicolons only to separate two or more statements written in the same line, but this is just a convention.

这是否被Lua社区普遍接受,还是有其他方式被大多数人所青睐?或者它是否像我个人的偏好一样简单?

lua conventions

22
推荐指数
1
解决办法
2万
查看次数

使用shmctl删除共享内存段

我对Linux的困惑man pagesshmctl().我使用以下命令:shmctl (id , IPC_RMID , 0)删除共享段.这man pages似乎与记忆的生命周期相矛盾.

手册页指出:

IPC_RMID

标记要销毁的细分.该段仅在最后一个进程分离之后才被实际销毁(即,当关联结构shmid_ds的shm_nattch成员为零时).呼叫者必须是所有者或创建者,或具有特权.如果段已被标记为销毁,则将设置IPC_STAT检索的关联数据结构中的shm_perm.mode字段的(非标准)SHM_DEST标志.

如果我是正确的,我相信这意味着如果你有两个附加到共享内存中的两个过程,(让我们称他们为Process1Process2),Process1可以创建共享内存,连接,分离,破坏了共享内存,并最终终止.然后内存仍然存在,直到Process2分离.

它是否正确?

其次,这句话的man pages意思是:

调用者必须确保段最终被销毁; 否则其故障的页面将保留在内存或交换中.

这似乎是Process1因为它标记了要删除的段,因此需要阻塞直到所有其他进程都被分离,以确保删除内存.但这似乎与上述说法相矛盾.我也不知道如何做到这一点(如果应该这样做的话),所以如果是这样的话,你能解释一下我会怎么做.

c linux shared-memory

15
推荐指数
1
解决办法
1万
查看次数

将整数添加到NSMutableArray

我无法在任何地方找到这个,所以我只是要求确认.是的,我知道它是基本的,但我想在我犯错百万次之前我宁愿做到这一点:

如果我执行以下操作,默认情况下是否将"0"转换为NSNumber(如果不是,它是什么对象类型),还是我必须执行第二个代码?

(或者这两个对我正在尝试的事情都可能是错误的.如果是这样,请告诉我.他们都编译,所以我只是想知道哪一个是"正确"(或首选)以及为什么.)

代码1:

NSMutableArray array = [[[NSMutableArray alloc] init]];
[array addObject: 0];
Run Code Online (Sandbox Code Playgroud)

代码2:

NSMutableArray array = [[NSMutableArray alloc] init];
[array addObject: [NSNumber numberWithInt: 0]];
Run Code Online (Sandbox Code Playgroud)

arrays object objective-c nsnumber

13
推荐指数
2
解决办法
2万
查看次数

iPhone加速框架FFT与Matlab FFT

我没有太多的数学背景,但我正在研究的项目的一部分需要单个向量的FFT.matlab函数fft(x)可以准确地满足我的需要,但在尝试设置Accelerate Framework fft函数后,我得到了完全不准确的结果.如果有人对Accelerate Framework fft有更多的专业知识/经验,我可以真正使用一些帮助来试图弄清楚我做错了什么.我根据我在谷歌上发现的一个例子来建立我的fft设置,但是没有教程或任何产生不同结果的东西.

EDIT1:到目前为止基于答案改变了一些东西.它似乎在进行计算,但它不会以任何接近matlab的方式输出它们

这是matlab的fft文档:http://www.mathworks.com/help/techdoc/ref/fft.html

**注意:例如,在两个示例中,x数组将是{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}

Matlab代码:

x = fft(x)
Run Code Online (Sandbox Code Playgroud)

Matlab输出:

x =

   1.0e+02 *

  Columns 1 through 4

   1.3600            -0.0800 + 0.4022i  -0.0800 + 0.1931i  -0.0800 + 0.1197i

  Columns 5 through 8

  -0.0800 + 0.0800i  -0.0800 + 0.0535i  -0.0800 + 0.0331i  -0.0800 + 0.0159i

  Columns 9 through 12

  -0.0800            -0.0800 - 0.0159i  -0.0800 - 0.0331i  -0.0800 - 0.0535i

  Columns 13 through 16

  -0.0800 - 0.0800i  -0.0800 - 0.1197i  -0.0800 - 0.1931i  -0.0800 - 0.4022i …
Run Code Online (Sandbox Code Playgroud)

iphone matlab fft objective-c accelerate-framework

8
推荐指数
1
解决办法
4843
查看次数

使用Apple Accelerate Framework中的vDSP_conv执行自相关

我需要执行数组(向量)的自相关,但我找不到正确的方法.我相信我需要Accelerate Framework中的方法"vDSP_conv",但我无法按照如何成功设置它.最让我失望的是需要2个输入.也许我有错误的功能,但我找不到一个在单个矢量上运行的功能.

文档可以在这里找到

从网站复制

vDSP_conv

对两个向量执行相关或卷积; 单精度.

void vDSP_conv(const float __vDSP_signal [],vDSP_Stride __vDSP_signalStride,const float __vDSP_filter [],vDSP_Stride __vDSP_strideFilter,float __vDSP_result [],vDSP_Stride __vDSP_strideResult,vDSP_Length __vDSP_lenResult,vDSP_Length __vDSP_lenFilter);

参数

__vDSP_signal

Input vector A. The length of this vector must be at least __vDSP_lenResult + __vDSP_lenFilter - 1.
Run Code Online (Sandbox Code Playgroud)

__vDSP_signalStride

The stride through __vDSP_signal.
Run Code Online (Sandbox Code Playgroud)

__vDSP_filter

Input vector B.
Run Code Online (Sandbox Code Playgroud)

__vDSP_strideFilter

The stride through __vDSP_filter.
Run Code Online (Sandbox Code Playgroud)

__vDSP_result

Output vector C.
Run Code Online (Sandbox Code Playgroud)

__vDSP_strideResult

The stride through __vDSP_result.
Run Code Online (Sandbox Code Playgroud)

__vDSP_lenResult

The length of __vDSP_result.
Run Code Online (Sandbox Code Playgroud)

__vDSP_lenFilter

The length of __vDSP_filter.
Run Code Online (Sandbox Code Playgroud)

举个例子,假设你有一个数组float x = …

c iphone accelerate-framework cross-correlation

7
推荐指数
1
解决办法
3449
查看次数

在UIWebView中滑动手势识别

我已经阅读了很多关于这方面的问题但是它们似乎都没有实现我想要的......所以我可以说我有一个任意的UIWebView内部UIViewController.该UIViewController有一个SwipeGestureRecognizer工作正常.它甚至可以在UIWebView- 没有滚动条的情况下工作.(在我加载页面之前,或者即使我加载的页面可以适合我的大小UIWebView).但是,如果我加载需要向左或向右水平滚动的网页,那么在UIWebView我的视图部分内部,我无法识别任何滑动手势.每次单击/拖动/滑动都会触发滚动操作.有没有办法区分"滑动"和只是用手指滚动(不是提起它而是拖动滚动).

iphone uiwebview uiswipegesturerecognizer

6
推荐指数
2
解决办法
1万
查看次数

Lua(命令行)在执行后仍然保持打开状态

我为此搜索了很多,但我似乎无法找到它.有没有办法Lua通过双击它来执行脚本(执行它Lua (Command Line))并在执行后保持打开状态?

例如:

print("Hello World")
Run Code Online (Sandbox Code Playgroud)

此代码编译并运行,但如果我双击hello.lua它运行并立即关闭而不会在屏幕上留下我的文本.我想要更像这样的东西,但无需去Command Prompt,更改目录,打字lua file.lua等等:

命令提示符

lua command-line

6
推荐指数
2
解决办法
3107
查看次数

Xcode模板按文件路径导入文件

我有一个像这样的Xcode模板文件:

#import "___FILEBASENAME___.h"

@implementation ___FILEBASENAMEASIDENTIFIER___
@end
Run Code Online (Sandbox Code Playgroud)

这将创建一个示例文件,如下所示:

#import "ExampleFile.h"

@implementation ExampleFile
@end
Run Code Online (Sandbox Code Playgroud)

但是由于我们的构建系统有些复杂,我需要按文件路径导入文件.

例如,如果我ExampleFile.mPath/To/文件夹内创建.然后我想要的输出是:

// Desired template output
#import "Path/To/ExampleFile.h"
Run Code Online (Sandbox Code Playgroud)

我尝试查看一些Apple示例模板,但似乎没有找到使其工作的方法.

我也在这里___DIRECTORY___引用它,但是当我试图使用它时它似乎对我没用.

有谁知道是否有办法实现这一目标?

xcode templates ios

5
推荐指数
1
解决办法
164
查看次数