我有一个文件(称为"number.txt"),我想用Java读取数组.我该怎样继续这样做呢?它是一个直接的"1维"文件,包含100个数字.
问题是我每次都得到一个例外.显然它找不到它(我确信它拼写正确).查看代码示例时,它不指定文件的整个文件路径,只指定文件本身的名称.如果有必要,我该如何去做呢?
此外,在读取文件时,数组是否会自动包含文件的所有行,或者我是否必须创建一个循环,将每行复制到相应的下标i?
我听说过BufferedReader类,它的目的是什么,以及它如何与读取输入相结合?
我编写了一个程序,从usb第二个键盘(实际上是条形码扫描仪)获取输入.问题是如果另一个窗口处于活动状态,则在那里输入数据而不是在我的程序中.有人可以就我做错了什么给我建议吗?
#include <stdio.h>
#include <string.h>
int main(int argc, char * argv[]){
FILE * fp_in;
char * data;
fp_in = fopen("/dev/input/by-id/usb-04d9_1400-event-kbd","r");
if(fp_in == NULL){
fprintf(stderr,"Failed to open input by id\n");
}
fp_in = fopen("/dev/input/by-path/pci-0000:00:1d.1-usb-0:2:1.0-event-kbd","r");
if(fp_in == NULL){
fprintf(stderr,"Failed to open input by path\n");
return 1;
}
while(1){
fscanf(fp_in,data,"%s");
fprintf(stderr,"%s",data);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
谢谢
如何在Linux下编写一个附加到输入设备的程序,在这种情况下是一个条形码扫描器,这样输入就不会转到具有键盘焦点的程序?
在Rails环境中运行计划任务的最佳方法是什么?脚本/亚军?耙?
我正在使用MediaTemple(dv)托管服务.如何确定安装的邮件服务器?我应该使用外壳吗?如果是这样,将使用什么命令?
我是.NET开发人员,在此之前使用VB6.我已经非常熟悉这些环境,并且在垃圾收集语言的环境中工作.但是,我现在希望用本机C++来增强我的技能,并发现自己有点不知所措.具有讽刺意味的是,这并不是我想象的通常是初学者的绊脚石,因为我觉得我已经很好地掌握了指针和内存管理.对我来说有点混乱的事情更多的是:
List<T>在C++中使用的是什么,它可以同时工作?)它几乎感觉就像你使用的IDE一样,指南是不同的,所以我真的在寻找一些可能更普遍的东西.或者最糟糕的是,专注于使用Microsoft的编译器/ IDE.另外,为了清楚起见,我不是在寻找有关通用编程实践(设计模式,代码完成等)的任何内容,因为我觉得我非常精通这些主题.
我正在尝试将DependancyProperty我的一个用户控件绑定到Widtha Column中的a 属性Grid.
我有类似这样的代码:
<Grid x:Name="MyGridName">
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="TitleSection" Width="100" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>...</Grid.RowDefinitions>
<GridSplitter x:Name="MyGridSplitter" Grid.Row="0" Grid.Column="0" ... />
</Grid>
Run Code Online (Sandbox Code Playgroud)
在单独的Usercontrol中,我DependancyProperty定义了以下内容.
public static readonly DependencyProperty TitleWidthProperty = DependencyProperty.Register("TitleWidth", typeof(int), typeof(MyUserControl));
public int TitleWidth
{
get { return (int)base.GetValue(TitleWidthProperty); }
set { base.SetValue(TitleWidthProperty, value); }
}
Run Code Online (Sandbox Code Playgroud)
我在代码中创建Usercontrol的实例,因此我有一个类似于此的绑定语句:
MyUserControl Cntrl = new MyUserControl(/* Construction Params */);
BindingOperations.SetBinding(Cntrl , MyUserControl.AnotherProperty, new Binding { ElementName = "objZoomSlider", Path = new PropertyPath("Value"), Mode …Run Code Online (Sandbox Code Playgroud) 我有两个C DLL,我需要在同一个可执行文件中访问.我有两个库的头文件和.LIB文件.不幸的是,我需要访问的函数的子集具有完全相同的名称.到目前为止,我能够提出的最佳解决方案是使用LoadLibrary加载其中一个DLL并使用GetProcAddress显式调用其方法.有没有办法让我隐式加载两个库,并以某种方式给编译器一个提示,在一种情况下,我想在DLL A中调用OpenApi,在另一种情况下,我想在DLL B中调用OpenApi?
我正在使用Visual Studio 2008和相应的C运行时库(msvcr90.dll)在C++中开发可执行文件.
[编辑]
评论者Ilya在下面问我对GetProcAddress解决方案不喜欢什么.我不喜欢它有两个原因:
我尝试了以下,但我没有成功:
ALTER TABLE person ALTER COLUMN dob POSITION 37;
Run Code Online (Sandbox Code Playgroud) 所以,假设我想编写一个操作不同类型数字的类,但我不知道我将要操作的是什么类型的数字(即整数,双数等).
我想使用泛型来为这个场景创建一个通用类.就像是:
Adder<Double> adder = new Adder<Double>();
adder.add(10.0d, 10.0d); // = 20.0d
Run Code Online (Sandbox Code Playgroud)
但是,我无法实例化我传入Adder类的泛型类型!那么该怎么办?
我需要生成一个作为控制台应用程序的子进程,并捕获其输出.
我为方法编写了以下代码:
string retMessage = String.Empty;
ProcessStartInfo startInfo = new ProcessStartInfo();
Process p = new Process();
startInfo.CreateNoWindow = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardInput = true;
startInfo.UseShellExecute = false;
startInfo.Arguments = command;
startInfo.FileName = exec;
p.StartInfo = startInfo;
p.Start();
p.OutputDataReceived += new DataReceivedEventHandler
(
delegate(object sender, DataReceivedEventArgs e)
{
using (StreamReader output = p.StandardOutput)
{
retMessage = output.ReadToEnd();
}
}
);
p.WaitForExit();
return retMessage;
Run Code Online (Sandbox Code Playgroud)
但是,这不会返回任何内容.我不相信该OutputDataReceived事件被回调,或者该WaitForExit()命令可能阻塞该线程,因此它永远不会回调.
有什么建议?
编辑:看起来我在回调中努力了.这样做:
return p.StandardOutput.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)
似乎工作正常.