问题列表 - 第23655页

如何将标准输入读入字符串变量,直到C中的EOF为止?

我收到"总线错误"试图读取stdin到一个char*变量.我只想阅读整个过程stdin并将其放在变量中,然后继续处理变量.

我的守则如下:

char* content;
char* c;
while( scanf( "%c", c)) {
 strcat( content, c);
}

fprintf( stdout, "Size: %d", strlen( content));
Run Code Online (Sandbox Code Playgroud)

但不知怎的,我总是通过调用返回"总线错误" cat test.txt | myapp,myapp上面编译的代码在哪里.

我的问题是如何将stdinEOF 读入变量?正如您在代码中看到的,我只想打印来自stdin的输入大小,在这种情况下,它应该等于文件的大小test.txt.

我以为只是使用scanf就足够了,可能是缓冲的阅读方式stdin

c stdin

8
推荐指数
3
解决办法
7万
查看次数

奇怪的Integer.parseInt异常

线程"Thread-2"中的异常java.lang.NumberFormatException:对于输入字符串:"3"

 int test = Integer.parseInt(result[0]);
Run Code Online (Sandbox Code Playgroud)

当我尝试将"3"转换为整数时,这是我不断得到的错误.好吧,我通过RS-232端口收到这个"3",所以也许这就是导致错误的原因.

如果有人知道可能导致这种情况的原因,将不胜感激.

java

4
推荐指数
1
解决办法
3159
查看次数

存储过程修改时间

有没有办法找出上次修改存储过程或表的时间?我尝试通过SQL Management Studio检查属性,但只找到了创建日期.

谢谢!

t-sql sql-server stored-procedures

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

"Presenter First"vs"Passive View"MVP?

"Presenter First"MVP模式是否与"被动视图"相同?如果没有,它们有何不同?

mvp design-patterns

4
推荐指数
1
解决办法
1632
查看次数

我可以使用FluentMigrator创建一个nvarchar(MAX)列吗?

使用FluentMigrator,默认创建Column使用.AsString()结果nvarchar(255).有一种简单的方法(在我修改FluentMigrator代码之前)创建一个类型的列nvarchar(MAX)吗?

fluent-migrator

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

Android:自定义ListAdapter扩展BaseAdapter在应用程序启动时崩溃

从本地数据库中提取数据,然后使用游标进行映射.自定义适配器显示类似于ListView的数据.在从DB添加/删除项目时,应该刷新适配器.下面尝试的解决方案在启动时崩溃了应用程序.有什么建议?

提前致谢

 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
   View v = convertView;
   ViewGroup p = parent;            
   if (v == null) {
     LayoutInflater vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     v = vi.inflate(R.layout.items_row, p);
   }
   int size = mAdapter.getCount();
   Log.d(TAG, "position " + position + " Size " + size);
   if(size != 0){
     if(position < size) return mAdapter.getView(position, v, p);
     Log.d(TAG, "-position " + position + " Size " + size);
   }
   return null;
 }
Run Code Online (Sandbox Code Playgroud)

例外:

03-23 00:14:10.392: ERROR/AndroidRuntime(718): java.lang.UnsupportedOperationException: addView(View, …
Run Code Online (Sandbox Code Playgroud)

android

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

在Node.js中编写文件

我一直试图找到一种在使用Node.js时写入文件的方法,但没有成功.我怎样才能做到这一点?

javascript file fs node.js express

1538
推荐指数
16
解决办法
141万
查看次数

如何使用System.IO.FileStream阅读希伯来语文本?

我错过了什么或System.IO.FileStream不读取包含希伯来语的Unicode文本文件?

    public TextReader CSVReader(Stream s, Encoding enc) 
    {

        this.stream = s;
        if (!s.CanRead) 
        {
            throw new CSVReaderException("Could not read the given CSV stream!");
        }
        reader = (enc != null) ? new StreamReader(s, enc) : new StreamReader(s);
    }
Run Code Online (Sandbox Code Playgroud)

谢谢乔纳森

c# filestream

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

如何在C++和OpenGL中将类方法作为另一个函数的参数传递?

我知道这件事有效:

void myDisplay()
{
...
}
int main()
{
...
glutDisplayFunc(myDisplay)
...
}
Run Code Online (Sandbox Code Playgroud)

所以我试图将myDisplay()函数包含到我创建的类中.因为我希望将来用不同的类重载它.但是,编译器抱怨说

argument of type 'void (ClassBlah::)()' does not match 'void(*)()' .

这是我尝试做的:

class ClassBlah
{
   ....
   void myDisplay()
   ....
}
......
int main()
{

    ...
    ClassBlah blah
    glutDisplayFunc(blah.myDisplay)
    ...
}
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?非常感谢.

c++ opengl methods glut

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

需要从绕行功能调用原始功能

我正在使用Detours挂钩到可执行文件的消息函数,但我需要运行自己的代码然后调用原始代码.从我在Detours文档中看到的内容来看,这听起来应该是自动发生的.原始功能会在屏幕上显示一条消息,但是一旦我附上绕道,就会开始运行我的代码并停止打印.

原始功能代码大致是:

void CGuiObject::AppendMsgToBuffer(classA, unsigned long, unsigned long, int, classB);
Run Code Online (Sandbox Code Playgroud)

我的功能是:

void CGuiObject_AppendMsgToBuffer( [same params, with names] );
Run Code Online (Sandbox Code Playgroud)

我知道原始函数所在的内存位置,因此使用:

DWORD OrigPos = 0x0040592C;
DetourAttach( (void*)OrigPos, CGuiObject_AppendMsgToBuffer);
Run Code Online (Sandbox Code Playgroud)

让我进入这个功能.这段代码几乎完美无缺:用适当的参数调用我的函数.但是,执行会离开我的函数并且不会调用原始代码.我已经尝试过jmping,但是崩溃了程序(我假设代码Detours移动以适应钩子负责崩溃).

编辑:我已设法修复第一个问题,没有返回程序执行.通过将OrigPos值作为函数调用,我可以转到"trampoline"函数并从那里到原始代码.但是,在某些地方,寄存器正在发生变化,一旦我回到原始代码,就会导致程序崩溃并出现段错误.

Edit2:最终工作代码:

class CGuiObject
{
 public:
    void MyFunc( [params] );
};

DWORD TrueAddr = 0x0040592C;

CGuiObject::MyFunc( [params] )
{
    _asm { pushad }
    // process
    _asm {
        popad
        leave
        jmp TrueAddr
    }
}
Run Code Online (Sandbox Code Playgroud)

并使用TrueAddr作为DetourAttach中的第一个参数.

c++ hook detours

6
推荐指数
0
解决办法
2224
查看次数