小编Noa*_*m M的帖子

C中的文件读取,随机错误

感谢大家到目前为止您的意见和建议!

另外:

在进一步测试和玩弄后,似乎对FileReader的单独调用成功.但是多次调用FileReader(这些可能是FileReader的单独版本)会导致问题发生.

结束添加

你好,

我有一个非常不寻常的问题[请完整阅读:这很重要](Code :: Blocks编译器,Windows Vista Home)[没有可复制的代码]和C文件读取功能(fread,fgetc).现在,通常,文件读取功能正确地将数据加载到自分配和自解除分配的字符串(并且它不是字符串的问题),但这是奇怪的(以及量子物理学适合的地方):

错误捕获语句报告EOF发生得太早(IE正在加载的文本文件开头的注释部分内).打印出字符串[加载后]确实报告确实太短(24个字符)(但它有足够的空间来容纳它[~400]并且没有分配问题).fgetc循环迭代器报告它终止于24(文件大约300个字符长)和一个EOF:这是它变得如此糟糕:

暂时检查Read - > _ base报告整个(~300)字符被加载 - 24处没有EOF.困惑,[给它是一个fgetc循环]我添加了一个printf来显示每个char [作为%d所以我可以发现 - 1 EOF]每一步都可以看到它在做什么,并对其进行了修改,因此它只是一个字符.它循环很好,达到~300而不是24 - 但稍后随机冻结.但是,当我删除printf时,它再次终止于24并被错误捕获语句捕获.

总结:所以,基本上:我有一个受量子物理学中"观察者效应"影响的错误:当我试图观察我从fgetc通过printf得到的字符时,问题(早期EOF终止于24)消失了,但是当我停止查看它时,错误捕获语句报告提前终止.

更奇怪的是,这不是第一次发生.Fread有类似的问题,我无法弄清楚原因,并用fgetc循环替换它.

[代码无法真正提供,因为代码库的大小为5个标题].

片段:

int X = 0; 
int C = 0; 
int I = 0;

while(Copy.Array[X] != EOF)
{
    //Copy.Array[X] = fgetc(Read);
    C = fgetc(Read);
    Copy.Array[X] = C;
    printf("%d %c\n",C,C); //Remove/add this as necessary
    if(C == EOF){break;}
    X++;
}
Run Code Online (Sandbox Code Playgroud)

侧注:将其分解为最简单的格式不会重现错误.

c

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

Qt C++无法在没有对象的情况下调用成员函数

我一直收到这个错误:

cannot call member function 'QString Load::loadRoundsPlayed()'without object
Run Code Online (Sandbox Code Playgroud)

现在我对c ++和qt很新,所以我不确定这意味着什么.我试图从另一个类调用一个函数来设置一些lcdNumbers上的数字.这是Load.cpp,它包含以下功能:

#include "load.h"
#include <QtCore>
#include <QFile>
#include <QDebug>

Load::Load() //here and down
{}

QString Load::loadRoundsPlayed()
{
    QFile roundsFile(":/StartupFiles/average_rounds.dat");

    if(!roundsFile.open(QFile::ReadOnly | QFile::Text))
    {
        qDebug("Could not open average_rounds for reading");
    }

    Load::roundsPlayed = roundsFile.readAll();
    roundsFile.close();
    return Load::roundsPlayed;
}
Run Code Online (Sandbox Code Playgroud)

这是Load.h:

    #ifndef LOAD_H
     #define LOAD_H

    #include <QtCore>

    class Load
    {
    private:
        QString roundsPlayed; //and here
    public:
        Load();
        QString loadRoundsPlayed(); //and here
    };

    #endif // LOAD_H
Run Code Online (Sandbox Code Playgroud)

最后我调用函数的地方:

    #include "mainwindow.h"
     #include "ui_mainwindow.h"
    #include "load.h"
    #include <QLCDNumber> …
Run Code Online (Sandbox Code Playgroud)

c++ user-interface qt function

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

如何向 ComboBoxEdit 添加项目?

我有一个小问题ComboBoxEditDevExpress.XtraEditors)。我无法为SelectedIndex我的ComboBoxExit.

 ComboBoxEdit combo = new ComboBoxEdit();
 ComboBoxItemCollection coll = combo.Properties.Items;

 coll.BeginUpdate();

 try 
 {
    coll.Add(new PersonInfo("Sven", "Petersen"));
    coll.Add(new PersonInfo("Cheryl", "Saylor"));
    coll.Add(new PersonInfo("Dirk", "Luchte"));
 }
 finally 
 {
    coll.EndUpdate();
 }

 combo.SelectedIndex = -1; Comboboxedit1.Properties.Items.Add(combo);
Run Code Online (Sandbox Code Playgroud)

它不起作用,只是添加显示:

在此输入图像描述

c# devexpress winforms

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

在 FrameBuffer 中绘制但只得到黑色

视窗

使用 glew

我正在尝试渲染离屏并将渲染的 img opengl 保存到 png 文件。

我在 stackoverflow 上关注了一个评价很高的答案: How to render offscreen on OpenGL?

但我得到的png文件只是黑屏。

这是我的相关代码:

glutCreateWindow(argv[0]);
if(GLEW_OK!=glewInit())
{
    return -1;
}

initScene();


GLuint fbo, render_buf;
glGenFramebuffers(1,&fbo);
glGenRenderbuffers(1,&render_buf);
glBindRenderbuffer(GL_RENDERBUFFER,render_buf);
glRenderbufferStorage(GL_RENDERBUFFER, GL_RGB8, viewport.w, viewport.h);
glBindFramebuffer(GL_DRAW_FRAMEBUFFER,fbo);
glFramebufferRenderbuffer(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, render_buf);


//Before drawing
glBindFramebuffer(GL_DRAW_FRAMEBUFFER,fbo);


glClear(GL_COLOR_BUFFER_BIT);               // clear the color buffer
glMatrixMode(GL_MODELVIEW);                 // indicate we are specifying camera transformations
glLoadIdentity();                       // make sure transformation is "zero'd"

//draw...
//glBegin(GL_POINTS) glColor3f, glVertex2f

//glFlush();
glFinish();

/*glutDisplayFunc(myDisplay);
glutPostRedisplay();*/

glBindFramebuffer(GL_READ_FRAMEBUFFER, fbo);
savePNG(outputPNGName,0,0,viewport.w,viewport.h);

//At deinit:
glDeleteFramebuffers(1,&fbo); …
Run Code Online (Sandbox Code Playgroud)

opengl glew framebuffer

0
推荐指数
1
解决办法
4196
查看次数

该计划的输出是什么?

我在http://indiabix.com/中看到以下代码 可以解释代码吗?

#include<stdio.h>
#include<math.h>

int main()
{
   float a=5.375;
   char *p;
   int i;
   p = (char*)&a;

   for(i=0; i<=3; i++)
   {
         printf("%02x\n", (unsigned char)p[i]);
   }

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

结果是

00 00 AC 40

.

c

0
推荐指数
1
解决办法
88
查看次数

在WPF(MVVM)中对小型操作使用单击事件是否可以?

我有一个使用MVVM实现的WPF应用程序.但是对于一些小的操作,例如滚动,确认框按钮单击,左键单击操作,右键单击操作等,我在视图中直接使用click事件.

我知道MVVM不推荐这样做,但是在使用MVVM时是否可以使用这样的点击事件或编码错误?使用它有什么利弊?

c# wpf xaml mvvm

0
推荐指数
1
解决办法
181
查看次数

WPF 多个触发器

我在 isPressed 和 isMouseOver 之间有冲突的故事板。两者都将按钮的背景更改为不同的颜色。但是 isMouseOver 故事板覆盖了 isPressed 故事板。我如何克服这个?我听说过多个触发器,但你们能给我一个代码解决方案吗?我是 WPF 的新手。

<ControlTemplate.Triggers>
    <Trigger Property="IsMouseOver" Value="True">
        <Trigger.EnterActions>
            <BeginStoryboard Storyboard="{StaticResource ToolsButtonMouseOver}"/>
        </Trigger.EnterActions>
        <Trigger.ExitActions>
            <BeginStoryboard x:Name="ToolsButtonMouseNotOver_BeginStoryboard" Storyboard="{StaticResource ToolsButtonMouseNotOver}"/>
        </Trigger.ExitActions>
    </Trigger>
    <Trigger Property="IsPressed" Value="True">
        <Trigger.ExitActions>
            <BeginStoryboard x:Name="ToolsButtonNotPressedStoryboard_BeginStoryboard1" Storyboard="{StaticResource ToolsButtonNotPressedStoryboard}"/>
        </Trigger.ExitActions>
        <Trigger.EnterActions>
            <BeginStoryboard x:Name="ToolsButtonNotPressedStoryboard_BeginStoryboard" Storyboard="{StaticResource ToolsButtonPressedStoryboard}"/>
        </Trigger.EnterActions>
    </Trigger>
</ControlTemplate.Triggers>
Run Code Online (Sandbox Code Playgroud)

wpf triggers storyboard

0
推荐指数
1
解决办法
3030
查看次数

c中的分段错误strcmp

我正在尝试在 c 中运行一个程序,该程序接收用户的文本文件和字符串,然后在文件中搜索该字符串。它不断出现分段错误,gdb 将我指向这个函数,但我不确定问题是什么。我很确定这与电话有关,strcmp但我不确定。任何有关此问题的帮助将不胜感激。

int inTable( const char *s )
{
    int i;

    for( i=0; i<numLines; ++i )
    {
        if( strcmp( st[i], s ) == 0 )
                return 1;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c debugging gdb segmentation-fault strcmp

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