小编Big*_*olf的帖子

仅使用C(无C++)进行OpenGL?

我想知道是否有可能在C中使用OpenGL甚至没有抓到c ++,教程或基本源代码是最受欢迎的!

如果有可能,我的C技能有多深才能理解和使用它?我目前仍然主要学习,我喜欢咬我的东西,而不是咀嚼.

c opengl

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

如何在fgets循环中正确刷新stdin

我已经找到了while((c = getchar()) != '\n' && c != EOF)在这里使用清除stdin 几次的例子,并尝试在通过fgets获取输入的循环中使用它.我需要刷新,因为循环从最后一个输入获取\n字符并再次运行它.

那么现在发生的是我现在必须按两次输入.为什么会发生这种情况,我该如何解决这个问题呢?

#define BUFFER_LIMIT 50
do
{
  int c;
  while ((c = getchar()) != '\n' && c != EOF);

  printf("console> ");
  fgets(input_buffer, BUFFER_LIMIT-1, stdin);

  if(do_something(input_buffer))
    break;
} while(strncmp(input_buffer, "quit", 4) != 0);
Run Code Online (Sandbox Code Playgroud)

c stdin

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

Scala/C++:Tail递归函数而不是输入循环

自从我进入Scala后,我开始使用尾递归编写函数,并了解到C++编译器也支持它,甚至优化尾递归函数.现在我很好奇优化的可靠性,并且可以将它用于我的主循环或命令提示符之类的东西吗?

传统上我写了这样的命令提示:

bool running = true;
string input;
while(running_){
  input = getInput();
  executeCommand(input);
  if(input == "quit") running_ = false;
}
Run Code Online (Sandbox Code Playgroud)

现在用这样的尾递归函数替换它会是一件坏事吗?

string input = "nothing";
void parseInput(){
  if(input != "nothing") executeCommand(input);

  getline(cin, input);
  if(input != "quit") parseInput();
}
Run Code Online (Sandbox Code Playgroud)

c++ tail-recursion

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

保持GCC不改变结构的大小(.BMP文件头)

我正在尝试创建.BMP文件.根据我的定义,BMP头是54个字节长.代码编译和一切,但在尝试打开文件时,我得到"错误的标题格式"错误.

如果我做一个sizeof(structtype)我得到56个字节而不是定义的54 - 如果我用值初始化一个结构,然后做一个sizeof(newStruct),我得到8个字节.因为我需要将54个字节写入文件,所以这很糟糕.

有没有办法让GCC不以这种方式改变结构大小?

这是结构的定义:

typedef struct
{
  uint16_t typeSignature; // = "BM"
  uint32_t filesize;     //filesize in Bytes
  uint32_t reserved;     // = 0 for this program
  uint32_t headerOffset; // = 54
} BmpFileHeader;

typedef struct
{
  uint32_t infoHeaderSize;    //size of header in byte. ( = 40)
  uint32_t Width;             //width of file in pixels
  uint32_t Height;            // height of file in pixels

  uint16_t Colors;       //colorbits per pixel (24 for 3byte RGB)
  uint16_t bitsPerPixel;
  uint32_t Compression;       //compression mode; 0 for uncompressed. …
Run Code Online (Sandbox Code Playgroud)

c gcc struct bmp

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

C++:使用后的类中的枚举定义

编译器如何处理类中的枚举定义是否有一般性的方式,如果它可以使用枚举,private:但在public:之后的部分中定义它吗?

代码示例:

class MyClass{
private:
  myEnum myMember;

public
  enum myEnum { A, B, C };

}
Run Code Online (Sandbox Code Playgroud)

它似乎使用gpp工作,但这是正确的用法?

c++ enums nested class

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

标签 统计

c ×3

c++ ×2

bmp ×1

class ×1

enums ×1

gcc ×1

nested ×1

opengl ×1

stdin ×1

struct ×1

tail-recursion ×1